logback--配置(显示类名、方法名、代码行号问题)
2017-10-13 10:15
621 查看
概述
logback日志配置了输出格式,但是日志输出中为“?.?(?)”,这位调试问题造成了很大的影响。
配置
光有以下配置,还不行, 还需要添加“AsyncAppender”。<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<property name="rootPath" value="/opt/logs/netty/stockBus" />
<property name="baseFile" value="stockBus"></property>
<property name="log.root.level" value="INFO"></property>
<!-- 控制台输出日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %line - %msg%n
</pattern>
</encoder>
</appender>
<!-- 文件输出日志 (文件大小策略进行文件输出,每小时产生一个日志文件给异常监控平台进行分析) -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${rootPath}/${baseFile}.log</File>
<!-- 日志文件rolling策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${rootPath}/${baseFile}_%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<maxHistory>30</maxHistory>
<!-- 按时间回滚的同时,按文件大小来回滚 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %line - %msg%n
</Pattern>
</encoder>
</appender>
<!-- 文件输出日志 (文件大小策略进行文件输出,每小时产生一个日志文件给异常监控平台进行分析) -->
<appender name="ERRORFILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${rootPath}/${baseFile}_error.log</File>
<!-- 日志文件rolling策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${rootPath}/${baseFile}_error_%d{yyyy-MM-dd}.log.gz
</FileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 日志输出格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %line - %msg%n
</Pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>10000</queueSize>
<appender-ref ref="FILE" />
<!--如果是true,调用者的数据将提供给远程主机,默认是false-->
<includeCallerData>true</includeCallerData>
</appender>
<logger name="org.springframework" additivity="false">
<level value="WARN" />
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="org.apache.ibatis" level="WARN" />
<logger name="java.sql.Connection" level="WARN" />
<logger name="java.sql.Statement" level="WARN" />
<logger name="java.sql.PreparedStatement" level="WARN" />
<logger name="org.mybatis.spring" level="WARN" />
<logger name="org.apache.commons" level="WARN">
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="org.apache.kafka" level="ERROR">
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="com.xxxx.product.intf.service.impl" additivity="false">
<level value="INFO" />
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="com.xxxx.core" additivity="false">
<level value="INFO" />
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="com.xxxx" additivity="false">
<level value="INFO" />
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="com.xxxx.netty.container.DispatcherServletHandler" additivity="false">
<level value="INFO" />
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<logger name="com" additivity="false" level="WARN">
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</logger>
<root level="${log.root.level}">
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="ASYNC" />
<appender-ref ref="ERRORFILE" />
</root>
<!-- kafka推送日志 -->
<appender name="fc-stock" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${rootPath}/fc-stock.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${rootPath}/fc-stock-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] %msg%n</pattern>
</encoder>
</appender>
<!-- kafka推送错误日志 -->
<appender name="fc-stock-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${rootPath}/fc-stock_error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${rootPath}/fc-stock_error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] %msg%n</pattern>
</encoder>
</appender>
<logger name="fc-kafkaLog" additivity="false" level="INFO">
<appender-ref ref="fc-stock"/>
<appender-ref ref="fc-stock-error"/>
</logger>
<!-- kafka推送日志 -->
<appender name="hs-stock" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${rootPath}/hs-stock.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${rootPath}/hs-stock-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] %msg%n</pattern>
</encoder>
</appender>
<!-- kafka推送错误日志 -->
<appender name="hs-stock-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${rootPath}/hs-stock_error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${rootPath}/hs-stock_error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] %msg%n</pattern>
</encoder>
</appender>
<logger name="hs-kafkaLog" additivity="false" level="INFO">
<appender-ref ref="hs-stock"/>
<appender-ref ref="hs-stock-error"/>
</logger>
<!-- kafka接受回执日志 -->
<appender name="receipt-stock" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${rootPath}/receipt-stock.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${rootPath}/receipt-stock-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] %msg%n</pattern>
</encoder>
</appender>
<logger name="receipt-kafkaLog" additivity="false" level="INFO">
<appender-ref ref="receipt-stock"/>
</logger>
</configuration>
相关文章推荐
- logback配置显示类名、方法名和代码行号
- Eclipse中的方法代码收缩和行号显示问题
- 在Eclipse Galileo中配置Tomcat及代码显示HttpServlet相关错误信息处理方法
- TestNG方法测试及注意要点 代码及配置详解(解决testng方法不执行问题)
- eclipse中 配置显示JDK代码 问题
- j2ee由于tomcat配置问题显示中文乱码的解决方法
- log4j配置日志不显示问题排查方法
- eclipse中 配置显示JDK代码 问题
- eclipse中 配置显示JDK代码 问题
- Visual studio 2008环境配置:C#显示代码行号、全屏显示
- eclipse中 配置显示JDK代码 问题
- delphi代码编辑器行号显示方法
- eclipse中 配置显示JDK代码 问题
- eclipse中 配置显示JDK代码 问题
- 崩溃,source Insight显示linux代码中文注释乱码问题,以及很傻很天真的解决方法
- 安卓代码混淆与反射冲突,地图无法显示等问题解决及反编译方法
- eclipse中 配置显示JDK代码 问题
- 黄聪:wordpress向mysql字段中保存html代码(使用add_option()方法),然后无法显示出问题
- eclipse中 配置显示JDK代码 问题
- 【ibokan】新浪博客等一些博客平台贴代码不显示问题解决方法