log 4 j 2よくある構成で、logIdをサポートします。

5142 ワード

文:オリジナル文章、転載は出典を明記してください。http://www.jianshu.com/u/e02df63eaa87
1、よくある配置と説明





    
    
        
        
            
            
        

        
        
            
        

        
            
            
            
            
                
                
            
        

        
            
            
            
            
            
            
                
                
            
        

    

    
    
        
        
        
        
            
            
            
            
        
    

2、Java端の配置
運転時は上記log4j2.xmlの構成を指定します。
-Dlog4j.configurationFile=./conf/log4j2.xml
3、ロゴを出力するか、またはロゴと対話する
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;

/**
 * Created by think on 2017/1/22 0022.
 */
public class LogTest {
    private static final Logger logger = LogManager.getLogger(LogTest.class);

    static class test extends Thread {
        @Override
        public void run() {
            long time = System.currentTimeMillis();
            ThreadContext.put("logid", String.valueOf( time));
            logger.info("test thread.");
            ThreadContext.clearAll();
        }
    }

    public static void main(String[] args) {
        long time = System.currentTimeMillis() ;
        ThreadContext.put("logid", String.valueOf(time));
        try {
            logger.trace("trace...");
            logger.debug("debug...");
            logger.info("info...");
            logger.warn("warn...");
            logger.error("error...");
            logger.fatal("fatal...");

            test test1 = new test();
            test test2 = new test();
            test1.start();
            test2.start();

        } catch (Exception e) {
            e.printStackTrace();
        }

        ThreadContext.clearAll();
    }
}
出力:
[ TRACE ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:37)] trace...
[ DEBUG ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:38)] debug...
[ INFO ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:39)] info...
[ WARN ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:40)] warn...
[ ERROR ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:41)] error...
[ FATAL ] [2017-02-04 17:10:27] [ LOGID:199427158 ] [logtest.LogTest.main(LogTest.java:42)] fatal...
[ INFO ] [2017-02-04 17:11:38] [ LOGID:199498552 ] [logtest.LogTest$test.run(LogTest.java:20)] test thread.
[ INFO ] [2017-02-04 17:11:38] [ LOGID:199498551 ] [logtest.LogTest$test.run(LogTest.java:20)] test thread.
このコードは参照できます。https://github.com/hawkingfoo/log-test