一、介绍
1.1 logback
logback是由log4j创始人设计的另一个开源日志组件,它分为下面下个模块:
1.2 日志级别
包括:trace、debug、info、warn 和 error。
1.2.1 trace
特别详细的系统运行完成信息,业务代码中,不要使用。(除非有特殊用意,否则请使用debug级别替代)
1.2.2 debug
1.2.3 info
系统运行信息
外部接口部分
说明
1.2.4 warn
1.2.5 error
影响到程序正常运行、当前请求正常运行的异常情况:
不应该出现的情况:
如果进行了抛出异常操作,请不要记录error日志,由最终处理方进行处理:
反例(不要这么做):
try{ .... }catch(exception ex){ string errormessage=string.format("error while reading information of user [%s]",username); logger.error(errormessage,ex); throw new userserviceexception(errormessage,ex); }
1.3 springboot 中 logback
二、logback 配置
2.1 配置文件logback-spring.xml示例
<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- 属性文件:在配置文件中找到对应的配置项 --> <springproperty scope="context" name="logpath" source="logging.path"/> <!-- 输出到控制台 --> <appender name="console-log" class="ch.qos.logback.core.consoleappender"> <layout class="ch.qos.logback.classic.patternlayout"> <pattern>[%d{yyyy-mm-dd' 'hh:mm:ss.sss}] [%c] [%t] [%l] [%-5p] %m%n</pattern> </layout> </appender> <!-- 获取比info级别高(包括info级别)但除error级别的日志 --> <appender name="info-log" class="ch.qos.logback.core.rolling.rollingfileappender"> <!-- 指定过滤策略 --> <filter class="ch.qos.logback.classic.filter.levelfilter"> <level>error</level> <onmatch>deny</onmatch> <onmismatch>accept</onmismatch> </filter> <encoder> <!-- 指定日志输出格式 --> <pattern>[%d{yyyy-mm-dd' 'hh:mm:ss.sss}] [%c] [%t] [%l] [%-5p] %m%n</pattern> </encoder> <!-- 指定收集策略:滚动策略--> <rollingpolicy class="ch.qos.logback.core.rolling.timebasedrollingpolicy"> <!-- 指定生成日志保存地址 --> <filenamepattern>${logpath}/info.%d.log</filenamepattern> <maxhistory>30</maxhistory> </rollingpolicy> </appender> <appender name="error-log" class="ch.qos.logback.core.rolling.rollingfileappender"> <!-- 指定过滤策略 --> <filter class="ch.qos.logback.classic.filter.thresholdfilter"> <level>error</level> </filter> <encoder> <!-- 指定日志输出格式 --> <pattern>[%d{yyyy-mm-dd' 'hh:mm:ss.sss}] [%c] [%t] [%l] [%-5p] %m%n</pattern> </encoder> <!-- 指定收集策略:滚动策略--> <rollingpolicy class="ch.qos.logback.core.rolling.timebasedrollingpolicy"> <!--指定生成日志保存地址 --> <filenamepattern>${logpath}/error.%d.log</filenamepattern> <maxhistory>30</maxhistory> </rollingpolicy> </appender> <!-- 异步输出 --> <appender name="async-info" class="ch.qos.logback.classic.asyncappender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃tract、debug、info级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>256</queuesize> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref="info-log"/> </appender> <appender name="async-error" class="ch.qos.logback.classic.asyncappender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃tract、debug、info级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>256</queuesize> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref="error-log"/> </appender> <!-- 指定最基础的日志输出级别 --> <root level="info"> <appender-ref ref="console-log" /> <appender-ref ref="info-log" /> <appender-ref ref="error-log" /> </root> </configuration>
项目配置文件中配置日志输出地址
logging: path: ./logs
2.2 标签说明
三、 源码
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。
如对本文有疑问, 点击进行留言回复!!
Android 4.0使用Kotlin调用C语言以及汇编语言
Java Class.forName()用法和newInstance()方法原理解析
网友评论