Log4j打印参数配置

Log4j打印参数配置

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="INFO" monitorInterval="600">
    <Properties>
        <property name="ModuleName">zzz</property>
    </Properties>

    <Appenders>
        <Console name="ConsoleAppender">
            <PatternLayout pattern="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%5p|%5t|%l|%m%n" />
        </Console>

        <RollingRandomAccessFile name="SystemAppender"
            filename="/logs/CPCN/Payment/${ModuleName}/${ModuleName}.log"
            filepattern="/logs/CPCN/Payment/${ModuleName}/$${date:yyyy-MM-dd}/${ModuleName}.log.%d{yyyy-MM-dd-HHmmss}-%i.log">
            <PatternLayout pattern="|%d{yyyy-MM-ddHH:mm:ss.SSS}|%5p|%5t|%l|%m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true"
                    interval="3600" />
                <SizeBasedTriggeringPolicy size="64MB" />
            </Policies>
            <DefaultRolloverStrategy max="1000" />
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <AsyncLogger name="system" additivity="false" level="INFO"
            includeLocation="true">
            <AppenderRef ref="SystemAppender" />
        </AsyncLogger>

        <AsyncLogger name="console" additivity="false" level="INFO"
            includeLocation="true">
            <AppenderRef ref="SystemAppender" />
            <AppenderRef ref="ConsoleAppender" />
        </AsyncLogger>

        <AsyncLogger name="dao" additivity="false" level="INFO"
            includeLocation="true">
            <AppenderRef ref="SystemAppender" />
        </AsyncLogger>

        <AsyncRoot level="INFO" includeLocation="true">
            <AppenderRef ref="SystemAppender" />
        </AsyncRoot>
    </Loggers>
</Configuration>

日志级别

FATAL       0  
ERROR      3  
WARN       4  
INFO         6  
DEBUG      7 

日志输出目的地

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 


日志输出格式

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 

打印参数

%m   输出代码中指定的消息

%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 

%r   输出自应用启动到输出该log信息耗费的毫秒数 

%c   输出所属的类目,通常就是所在类的全名 

%t   输出产生该日志事件的线程名 

%n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 

%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  

%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数


看个栗子

|%d{yyyy-MM-ddHH:mm:ss.SSS}|%5p|%5t|%l|%m%n

按照上面的套一下

时间|类型|线程名|事件发送位置| %m(真实的日志信息)  %n (换行) 

根据这个可以知道


    public void warn(LogType logType, Object message) {
        String msgFormatted = msgFormat(logType, message);
        logger.warn(msgFormatted);
    }
    protected String msgFormat(LogType logType, Object message) {
        StringBuilder sb = new StringBuilder();
        LogContextVO logContext = LogContextHolder.getInstance().getLogContext();
        sb.append(logContext.getTraceID());
        sb.append("|").append(logContext.getTransferID());
        sb.append("|").append(logContext.getLocalIP());
        sb.append("|").append(logContext.getTraceIP());
        sb.append("|").append(moduleID);
        sb.append("|").append(logContext.getRootID());
        sb.append("|").append(logType);
        sb.append("|");
        sb.append(message != null ? "|" + message.toString() + "|" : "");
        return sb.toString();
    }

message 增加一些内容

|traceID|tranceferID|localIP|TraceIp|moduleID|rootID|logType|        | 日志描述|

|1805181822152053531749637|0.3.2.7.2|192.168.145.90:|192.168.145.90:|3511|20180518182215795295|SQL| |哈哈哈|











猜你喜欢

转载自blog.csdn.net/wangming520liwei/article/details/80420503