logback xml example

前端之家收集整理的这篇文章主要介绍了logback xml example前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能

下面就举例介绍一下如何在项目中使用logback:

1. Send logs to Console

所有的日志都将会重定向到控制台.

logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  5. <layout class="ch.qos.logback.classic.PatternLayout">
  6. <Pattern>
  7. %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
  8. </Pattern>
  9. </layout>
  10. </appender>
  11.  
  12. <logger name="com.mkyong.web" level="debug" additivity="false">
  13. <appender-ref ref="STDOUT" />
  14. </logger>
  15.  
  16. <root level="error">
  17. <appender-ref ref="STDOUT" />
  18. </root>
  19.  
  20. </configuration>

2、Send logs to File

所有的日志将会重定向c:/logs/debug.log文件中,而且这个日志文件将会每天归档或者当文件大小超过10MB的时候

logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <property name="DEV_HOME" value="c:/logs" />
  5.  
  6. <appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
  7. <file>${DEV_HOME}/debug.log</file>
  8. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  9. <Pattern>
  10. %d{yyyy-MM-dd HH:mm:ss} - %msg%n
  11. </Pattern>
  12. </encoder>
  13.  
  14. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  15. <!-- rollover daily -->
  16. <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
  17. </fileNamePattern>
  18. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  19. <maxFileSize>10MB</maxFileSize>
  20. </timeBasedFileNamingAndTriggeringPolicy>
  21. </rollingPolicy>
  22.  
  23. </appender>
  24.  
  25. <logger name="com.mkyong.web" level="debug" additivity="false">
  26. <appender-ref ref="FILE-AUDIT" />
  27. </logger>
  28.  
  29. <root level="error">
  30. <appender-ref ref="FILE-AUDIT" />
  31. </root>
  32.  
  33. </configuration>

3. Send logs to Console and File

结合控制台与文件一起输出

logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <property name="DEV_HOME" value="c:/logs" />
  5.  
  6. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  7. <layout class="ch.qos.logback.classic.PatternLayout">
  8. <Pattern>
  9. %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
  10. </Pattern>
  11. </layout>
  12. </appender>
  13.  
  14. <appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
  15. <file>${DEV_HOME}/debug.log</file>
  16. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  17. <Pattern>
  18. %d{yyyy-MM-dd HH:mm:ss} - %msg%n
  19. </Pattern>
  20. </encoder>
  21.  
  22. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  23. <!-- rollover daily -->
  24. <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
  25. </fileNamePattern>
  26. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  27. <maxFileSize>10MB</maxFileSize>
  28. </timeBasedFileNamingAndTriggeringPolicy>
  29. </rollingPolicy>
  30.  
  31. </appender>
  32.  
  33. <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  34. <file>${DEV_HOME}/error.log</file>
  35. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  36. <Pattern>
  37. %d{yyyy-MM-dd HH:mm:ss} - %msg%n
  38. </Pattern>
  39. </encoder>
  40.  
  41. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  42. <!-- rollover daily -->
  43. <fileNamePattern>${DEV_HOME}/archived/error.%d{yyyy-MM-dd}.%i.log
  44. </fileNamePattern>
  45. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  46. <maxFileSize>10MB</maxFileSize>
  47. </timeBasedFileNamingAndTriggeringPolicy>
  48. </rollingPolicy>
  49.  
  50. </appender>
  51.  
  52. <!-- Send logs to both console and file audit -->
  53. <logger name="com.mkyong.web" level="debug" additivity="false">
  54. <appender-ref ref="FILE-AUDIT" />
  55. <appender-ref ref="STDOUT" />
  56. </logger>
  57.  
  58. <root level="error">
  59. <appender-ref ref="FILE-ERROR" />
  60. </root>
  61.  
  62. </configuration>

4、SiftingAppender example

把日志输出到分开的日志文件中,这个日志文件名称通过MDC在运行时定义.

logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <property name="DEV_HOME" value="c:/logs" />
  5.  
  6. <appender name="FILE-THREAD" class="ch.qos.logback.classic.sift.SiftingAppender">
  7.  
  8. <discriminator>
  9. <key>logFileName</key>
  10. <defaultValue>head0</defaultValue>
  11. </discriminator>
  12.  
  13. <sift>
  14.  
  15. <appender name="FILE-${logFileName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
  16. <file>${DEV_HOME}/${logFileName}.log</file>
  17.  
  18. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  19. <Pattern>
  20. %d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{35} - %msg%n
  21. </Pattern>
  22. </encoder>
  23.  
  24. <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  25. <FileNamePattern>${DEV_HOME}/${logFileName}.%i.log.zip
  26. </FileNamePattern>
  27. <MinIndex>1</MinIndex>
  28. <MaxIndex>10</MaxIndex>
  29. </rollingPolicy>
  30.  
  31. <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  32. <MaxFileSize>10MB</MaxFileSize>
  33. </triggeringPolicy>
  34.  
  35. </appender>
  36.  
  37. </sift>
  38. </appender>
  39.  
  40. <logger name="com.mkyong.web" level="debug" additivity="false">
  41. <appender-ref ref="FILE-THREAD" />
  42. </logger>
  43.  
  44. <root level="error">
  45. <appender-ref ref="FILE-THREAD" />
  46. </root>
  47.  
  48. </configuration>
  1. import org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;
  3. import org.slf4j.MDC;
  4.  
  5. //...
  6. public void run() {
  7.  
  8. MDC.put('logFileName',"head1");
  9.  
  10. logger.debug("hello");
  11.  
  12. MDC.remove('logFileName');
  13.  
  14. }

可以查看完全的例子: Logback SiftingAppender example.

5、Set log file name programmatically

以System.setProperty的方式以编程式的命名日志名称为${log.name}.

logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <property name="USER_HOME" value="/home/mkyong/ant/logs" />
  5.  
  6. <appender name="FILE-ENGINE-ERROR" class="ch.qos.logback.core.FileAppender">
  7. <file>${USER_HOME}/${log.name}.error</file>
  8. <encoder>
  9. <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  10. </encoder>
  11. </appender>
  12.  
  13. <appender name="FILE-ENGINE" class="ch.qos.logback.core.FileAppender">
  14. <file>${USER_HOME}/${log.name}.log</file>
  15. <encoder>
  16. <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</pattern>
  17. </encoder>
  18. </appender>
  19.  
  20. <logger name="com.mkyong.core" level="debug" additivity="false">
  21. <appender-ref ref="FILE-ENGINE" />
  22. </logger>
  23.  
  24. <root level="error">
  25. <appender-ref ref="FILE-ENGINE-ERROR" />
  26. </root>
  27.  
  28. </configuration>

TestRunApp.java

  1. package com.mkyong.core;
  2.  
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5.  
  6. public class TestRunApp {
  7.  
  8. //No static,else log.name.IS_UNDEFINED.log
  9. private final Logger logger = LoggerFactory.getLogger(TestRunApp.class);
  10.  
  11. public static void main(String[] args) {
  12.  
  13. //Set this before the logger start.
  14. System.setProperty("log.name","abcdefg");
  15.  
  16. TestRunApp obj = new TestRunApp();
  17. obj.start();
  18.  
  19. }
  20.  
  21. private void start() {
  22.  
  23. logger.debug("------ Starting Ant------");
  24. //...
  25. }
  26.  
  27. }

and Output:

  1. Debug log file path
  2. /home/mkyong/ant/logs/abcdefg.log
  3.  
  4. Error log file path
  5. /home/mkyong/ant/logs/abcdefg.error

可以查看完全的例子: [Logback – Set log file name programmatically](Logback – Set log file name programmatically)

官方网站:http://logback.qos.ch/manual/introduction.html
推荐阅读:logback 配置详解

猜你在找的XML相关文章