log4j2.xml日志模板
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn">
<Properties>
<!-- 配置日志文件输出目录,此配置将日志输出到tomcat根目录下的指定文件夹-->
<Property name="LOG_HOME">/logs</Property>
<!-- 日志输出格式 -->
<Property name="LOG_PATTERNLAYOUT">%d{yyyy-MM-dd HH:mm:ss} %t %C{1} %-30M %m%n</Property>
</Properties>
<Appenders>
<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch),当前只输出TRACE,DEBUG,INFO 三种 -->
<!-- 输出日志的格式 -->
<Console name="console_out_appender" target="SYSTEM_OUT">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERNLAYOUT}"/>
</Console>
<!--这个输出控制台的配置,这里输出WARN,ERROR,FATAL 级别的信息到System.err,在eclipse控制台上看到的是红色文字 -->
<Console name="console_err_appender" target="SYSTEM_ERR">
<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- 输出日志的格式 -->
<PatternLayout pattern="${LOG_PATTERNLAYOUT}"/>
</Console>
<!-- INFO级别日志 -->
<RollingRandomAccessFile name="info_appender" immediateFlush="true" fileName="${LOG_HOME}/info.log" filePattern="${LOG_HOME}/info/info - %d{yyyy-MM-dd HH_mm_ss}.log">
<PatternLayout pattern="${LOG_PATTERNLAYOUT}"/>
<Policies>
<SizeBasedTriggeringPolicy size="2MB"/>
</Policies>
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingRandomAccessFile>
<!-- ERROR级别日志 -->
<RollingRandomAccessFile name="error_appender" immediateFlush="true" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error/error - %d{yyyy-MM-dd HH_mm_ss}.log">
<PatternLayout pattern="${LOG_PATTERNLAYOUT}"/>
<Policies>
<SizeBasedTriggeringPolicy size="2MB"/>
</Policies>
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<!-- 配置日志的根节点 -->
<root level="trace">
<appender-ref ref="console_out_appender"/>
<appender-ref ref="console_err_appender"/>
<appender-ref ref="info_appender"/>
<appender-ref ref="error_appender"/>
</root>
<!-- 第三方日志系统 -->
<logger name="org.springframework.core" level="warn"/>
<logger name="org.springframework.beans" level="warn"/>
<logger name="org.springframework.context" level="warn"/>
<logger name="org.springframework.web" level="warn"/>
<logger name="org.jboss.netty" level="warn"/>
<logger name="org.apache.http" level="warn"/>
</Loggers>
</configuration>
日志工具类
public class Log4j2Utils {
public Log4j2Utils() {
}
public static void log(Class c, String functionName, String valueName, Object value) {
Logger logger = Logger.getLogger(c.getName());
Map<String, Object> result = new HashMap();
result.put("日志函数", functionName);
result.put("对象名", valueName);
if (value != null) {
result.put("对象值", JSONUtils.toJson(value));
} else {
result.put("对象值", Log4j2Enum.NULL.value());
}
logger.info(result.toString());
}
}
网友评论