日志打印

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;
}



  

posted @ 2020-08-04 19:18  大米粒汪汪叫  阅读(163)  评论(0编辑  收藏  举报