日志打印
1.异步打印
<appender name="ERROR_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${ENCODER_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 异步 -->
<appender name="ERROR_APPENDER_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>2048</queueSize>
<appender-ref ref="ERROR_APPENDER"/>
</appender>
<logger name="RPC_DETAIL_LOGGER" level="INFO" additivity="false">
<appender-ref ref="RPC_DETAIL_APPENDER_ASYNC"/>
</logger>
<root level="INFO">
<appender-ref ref="INFO_APPENDER_ASYNC"/>
<appender-ref ref="WARN_APPENDER_ASYNC"/>
<appender-ref ref="ERROR_APPENDER_ASYNC"/>
</root>
2.日志信息中总是打印行号可能导致系统缓慢
日志信息中总是打印行号可能导致系统缓慢
打印行号需要进行抛出,抛出多了系统会缓慢;
1、LineOfCallerConverter
public class LineOfCallerConverter extends ClassicConverter {
public String convert(ILoggingEvent le) {
StackTraceElement[] cda = le.getCallerData();
if (cda != null && cda.length > 0) {
return Integer.toString(cda[0].getLineNumber());
} else {
return CallerData.NA;
}
}
}
2、LoggingEvent
public StackTraceElement[] getCallerData() {
if (callerDataArray == null) {
callerDataArray = CallerData
.extract(new Throwable(), fqnOfLoggerClass, loggerContext.getMaxCallerDataDepth(), loggerContext.getFrameworkPackages());
}
return callerDataArray;
}

浙公网安备 33010602011771号