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>

你可能感兴趣的:(log)