1. 程式人生 > 實用技巧 >日誌列印

日誌列印

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.日誌資訊中總是列印行號可能導致系統緩慢

日誌資訊中總是列印行號可能導致系統緩慢

列印行號需要進行丟擲,丟擲多了系統會緩慢;

public static String getTraceInfo(){    
        StringBuffer sb = new StringBuffer();     
            
        StackTraceElement[] stacks = new Throwable().getStackTrace();    
        int stacksLen = stacks.length;    
        sb.append("class: " ).append(stacks[1].getClassName()).append("; method: ").append(stacks[1].getMethodName()).append("; number: ").append(stacks[1].getLineNumber());    
            
        return sb.toString();    
    }    

String _methodName =  
  
new Exception().getStackTrace()[1].getMethodName();// 獲得呼叫者的方法名  
  
String _thisMethodName =  
  
new Exception().getStackTrace()[0].getMethodName();// 獲得當前的方法名