`

log日志分级别输出

 
阅读更多
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <!-- ========================== 自定义输出格式说明================================ -->
      <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
      <!-- %r 输出自应用启动到输出该log信息耗费的毫秒数  -->
      <!-- %c 输出所属的类目,通常就是所在类的全名 -->
      <!-- %t 输出产生该日志事件的线程名 -->
      <!-- %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” -->
      <!-- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  -->
      <!-- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)  -->
      <!-- ========================================================================== -->

      <!-- ========================== 输出方式说明================================ -->
      <!-- Log4j提供的appender有以下几种:  -->
      <!-- org.apache.log4j.ConsoleAppender(控制台),  -->
      <!-- org.apache.log4j.FileAppender(文件),  -->
      <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), -->
      <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  -->
      <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   -->
  <!-- ========================================================================== -->


  <!-- 输出到日志文件  -->
    <appender name="TestDebug" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="D:/log/Testdebug.log"/>
        <param name="Append" value="true"/>
        <param name="MaxFileSize" value="5KB"/>
        <param name="MaxBackupIndex" value="2"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%c %d{ISO8601}-- %p -- %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="DEBUG"/>
        </filter>
    </appender>

   <appender name="TestInfo" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="D:/log/Testinfo.log"/>
        <param name="Append" value="true"/>
        <param name="MaxFileSize" value="5KB"/>
        <param name="MaxBackupIndex" value="2"/>
        <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%c %d{ISO8601}-- %p -- %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO"/>
            <param name="LevelMax" value="INFO"/>
        </filter>

    </appender>
    <appender name="TestError" class="org.apache.log4j.RollingFileAppender">
		<param name="File"
			value="D:/log/testError.log" />
		<param name="MaxFileSize" value="2000KB" />
		<param name="MaxBackupIndex" value="300" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="ERROR" />
			<param name="LevelMax" value="ERROR" />
		</filter>
	</appender>


       <!--通过<category></category>的定义可以将各个包中的类日志输出到不同的日志文件中-->
		<category name="com">
			<priority value="debug" />
			<appender-ref ref="TestInfo" />
                            <appender-ref ref="TestDebug" />
		</category>
		
	<logger name="com.Test">
		<level value="INFO" />
		<appender-ref ref="TestError" />
	</logger>
	
    <root>
        <priority value="debug"/>
    </root>
</log4j:configuration>

 

public class Test {

    private static final Logger log = Logger.getLogger(Test.class);

    public static void main(String[] args) {
          log.info("info ....");
          log.debug("debug ....");
          log.warn("warn....");
          log.error("test  test  test");
                      

    }

}

     注意:

 

     日志级别  <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
 

      所以像下面这样设置appender过滤器,将打印info、warn、error三个级别的日志到文件中。

      <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO"/>
            <param name="LevelMax" value="ERROR"/>
        </filter>

分享到:
评论

相关推荐

    动态设置log4j的日志级别

    总结来说,动态设置Log4j的日志级别是提高应用灵活性的重要手段,可以根据运行时的需求调整日志输出的详细程度,同时避免不必要的重启操作。通过配置文件、API、JMX以及Web界面等多种方式,开发者可以方便地实现这一...

    Log4Cpp日志输出至文件组件最佳实践

    2. **Level**:日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL,用于控制日志信息的输出级别。 3. **Appender**:日志输出的目标,如控制台、文件、网络等。我们关注的是将日志输出到文件的FileAppender。 4. **...

    log4j自定义日志文件名及日志输出格式

    例如,`%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n`会输出时间戳、日志级别、logger名称、行号和日志消息。如果你的需求更复杂,可以继承`PatternLayout`或`TTCCLayout`等类,然后重写`format()`方法,以满足...

    log4net日志输出

    在XML配置文件中,我们可以定义日志输出的目标(appender)、日志级别(level)和布局(layout)。例如: ```xml &lt;log4net&gt; &lt;appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"&gt; ...

    Android-AndroidLog日志打印输出到文件方便查看和上传到服务器

    标题"Android-AndroidLog日志打印输出到文件方便查看和上传到服务器"所描述的,就是一种将Android应用的日志信息写入到本地文件的方法,以便后续分析或上传到远程服务器。这个方法能够帮助开发者在无法直接访问设备...

    日志输出库spdlog

    `spdlog`支持多种日志级别,包括`trace`, `debug`, `info`, `warn`, `err`, `critical` 和 `off`。可以设置全局或特定日志器的级别,控制不同级别的日志输出。 #### 格式化 `spdlog`允许自定义日志格式。例如,你...

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能,包括控制日志级别、定制日志格式、支持多种输出方式等。本示例将详细介绍如何使用Log4j来控制指定类或包的日志级别。 首先,我们来理解日志级别的...

    log4j配置 输出日志 案例

    `log4j配置输出日志案例.doc`文档中应该包含了更详细的配置和实际运行案例,包括如何调整日志级别、设置过滤器、自定义日志格式等。这些案例可以帮助读者更好地理解和应用log4j,解决实际开发中的日志管理问题。 ##...

    log4j按功能保存日志

    - 为了提高性能,避免不必要的日志输出,应合理设置日志级别。DEBUG级别信息只在调试时开启,生产环境中通常使用INFO或更高的级别。 - 使用异步Appender可以提高日志记录效率,防止日志输出对应用性能的影响。 6....

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    - 在Log4j2中,日志级别包括DEBUG、INFO、WARN、ERROR、FATAL以及OFF。每个级别对应不同的严重程度,例如DEBUG用于调试信息,INFO用于一般信息,WARN表示可能出现的问题,ERROR和FATAL表示错误和严重错误,而OFF则...

    c++ 打印log 日志到文件

    通过定义枚举类型,我们可以方便地切换不同的日志级别,只输出特定级别的信息。例如: ```cpp enum LogLevel { DEBUG, INFO, WARNING, ERROR, FATAL }; ``` 2. **时间戳**:为了追踪日志的生成时间,可以在每条...

    g3log 日志管理

    此外,它的配置文件支持动态调整,可以在运行时改变日志级别、格式和其他设置。 ### 6. 用户友好的接口封装 虽然g3log的原始接口可能对一些开发者来说不够直观,但可以通过二次封装来创建更符合个人或团队习惯的...

    易语言log日志模块源码

    4. **日志分级**:通过设置不同的日志级别,可以在生产环境中过滤掉不重要的信息,只保留错误和警告,以减小存储和查看负担。 5. **错误堆栈信息**:当出现错误时,模块会记录错误堆栈,显示错误发生时的函数调用...

    Log4j分包输出日志

    分包日志输出是Log4j的一个高级特性,允许我们根据类所在的包或子包来定制不同的日志级别和输出策略。例如,我们可以让某个包下的所有类输出DEBUG级别的日志,而其他包只输出ERROR级别的日志。这样,我们可以在不...

    log4j的日志级别的调整

    本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...

    log4j日志输出格式化和日志文件名格式化

    Log4j作为Java平台上广泛使用的日志框架,提供了强大的日志输出和管理功能。本文将深入探讨如何利用Log4j进行日志输出格式化以及设置日志文件名格式化,以满足公司的标准化需求。 首先,我们来看日志输出格式化。...

    SSM整合中的Log4j日志的配置详情

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    log4j日志级别详细介绍

    Apache的开源项目Log4j正是这样一款强大且灵活的日志组件,它不仅支持多种日志级别,还允许用户自定义日志格式和输出方式,极大地提高了日志使用的灵活性和效率。 #### Log4j中的日志级别 Log4j支持多种不同的日志...

    MFC工程项目中打印log日志

    `OpenLog`函数用于创建或打开指定路径的日志文件,`CloseLog`用于关闭日志文件,`WriteLog`则负责将信息写入日志文件,可以根据日志级别选择不同的输出格式。例如: ```cpp bool CLog::OpenLog(const CString& ...

    打log4j日志-ibatis的sql输出

    首先,Log4j是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者定义日志级别、输出格式以及输出位置,极大地增强了日志管理的灵活性。Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里...

Global site tag (gtag.js) - Google Analytics