SLF4J 之logback.xml配置文件实例及其说明
2017-06-29 00:00
253 查看
对于java后端程序员来说,如何记录日志是一个小话题,只要在网上随便找一个log4j的简单说明,就可以用了。但是,要真正了解日志记录的技术细节,还是需要花点时间研究一下。这里推荐使用SLF4J的logback来记录日志,虽说和log4j区别不大,但其模板打印方式很贴心:
以下是一个logback.xml配置实例。本文主要参考了aubdiy的文章:
http://aub.iteye.com/blog/1103685
在此表示感谢!
首先,在工程中引入如下包:
然后在类中引用logger:
最后,在工程的classpath下,放入logback.xml配置文件。文件中包含的节点的含义和用法,均有详细说明:
最后,贴出 aubdiy 在文章 http://aub.iteye.com/blog/1103685 中,关于 pattern 的说明:
logger.debug("现在要打印第一个数据:{} ,和第二个数据{}",object1,object2);
以下是一个logback.xml配置实例。本文主要参考了aubdiy的文章:
http://aub.iteye.com/blog/1103685
在此表示感谢!
首先,在工程中引入如下包:
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
然后在类中引用logger:
private Logger logger = LoggerFactory.getLogger(this.getClass());
最后,在工程的classpath下,放入logback.xml配置文件。文件中包含的节点的含义和用法,均有详细说明:
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true" scan="true" scanPeriod="60 seconds"> <!-- 关于logback的更多介绍,请参考原创文章: http://aub.iteye.com/blog/1103685 --> <!-- appender简介: 具体描述如何来写日志的节点。最常用的有三类:ConsoleAppender、FileAppender、RollingFileAppender appender属性详解: name属性:自定义名称。 class属性:指定类名。 appender子节点详解: encoder子节点:将日志信息输出的节点,其内部的pattern子节点指定输出格式。 --> <!-- ConsoleAppender简介:无特殊特性 --> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <charset>UTF-8</charset> <pattern>[%d{MM-dd HH:mm:ss}][%p][%logger{0}:%line] - %m%n</pattern> </encoder> </appender> <!-- FileAppender简介: 把日志添加到文件。 FileAppender特殊子节点详解: file子节点:日志文件名,相对路径绝对路径均可,如果上级目录不存在会自动创建,没有默认值。 append子节点:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。 --> <appender name="logFile" class="ch.qos.logback.core.FileAppender"> <file>logFile.log</file> <append>true</append> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- RollingFileAppender简介: 先将日志记录到指定文件,当符合某个条件时,将日志数据迁移到其他文件。 RollingFileAppender特殊子节点详解: triggeringPolicy子节点:定义日志滚动的触发条件。一般为时间触发或文件大小触发。 rollingPolicy子节点:当触发条件满足时,决定如何滚动。涉及文件移动和重命名。 --> <appender name="rollingFileBaseTime" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>rollingFileBaseTime.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="rollingFileBaseSize" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>rollingFileBaseSize.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>logFile.%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>3</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- logger简介: 用来设置某个包或类的打印级别和appender。 logger属性详解: name属性:用来指定受此logger约束的某一个包或者具体的某一个类。 level属性:设置打印级别,默认继承上级的级别。 addtivity属性:是否向上级loger传递打印信息,默认是true。 logger子节点详解: appender-ref子节点:可以包含多个,用于引用appender节点 --> <logger level="info" name="com.xxx.xxx"> <appender-ref ref="stdout" /> </logger> <!-- root简介: 也是一个logger节点,但它是根logger节点,只有一个level属性 root属性详解: level属性:设置打印级别,默认继承上级的级别。 root子节点详解: appender-ref子节点:可以包含多个,用于引用appender节点 --> <root level="info"> <appender-ref ref="stdout" /> </root> </configuration>
最后,贴出 aubdiy 在文章 http://aub.iteye.com/blog/1103685 中,关于 pattern 的说明:
相关文章推荐
- smartfoxserver中配置文件config.xml的使用技巧及其说明
- web.xml文件配置详解以及实例说明
- web.xml文件配置详解以及实例说明
- web.xml文件配置详解以及实例说明
- android动画xml文件详细实例说明
- spring+hibernate 配置文件(applicationContext.xml)实例
- xx实体.hbm.xml 配置文件的主键生成机制说明
- AIR应用程序中配置文件(*-app.xml)的说明
- ldirectord配置文件及其参数详细说明
- Struts 2 自学之路: 3.1 struts.xml 核心配置实例说明
- Tomcat的配置文件server.xml 中各个域的说明
- 关于struts2中的xml配置文件说明
- 关于hibernate.cfg.xml配置文件的几点说明
- strut2.0中的struts.xml配置文件详细说明
- logback的配置文件(logback.xml)常用配置详解
- web.xml文件配置的说明
- Spring的Ioc简单使用实例(含XML配置文件路径知识)
- 用xxx.hbm.xml映射文件配置的hibernate实例
- AIR 配置文件(*-app.xml)说明
- 从IBatis2.X 移植到IBatis3.0 sqlMapConfig and sqlMap XML 配置文件升级说明