为什么80%的码农都做不了架构师?>>>
log4j2基本操作:
1、导入log4j2的jar包(log4j-core-2.7.jar,log4j-api-2.7.jar)
2、创建logger对象
//创建logger对象
private static final Logger logger = LogManager.getLogger(NamedHierarchy.class);
3、编写相应的日志
String log2 = "log4j2";
/**
* 可以为日志设定不同的级别
* 在log4j2中:trace<debug<info<warn<error<fatal
*/
logger.trace("TRACE:"+log2);
logger.debug("DEBUG:"+log2);
logger.info("INFO:"+log2);
logger.warn("WARN:"+log2);
logger.error("ERROR:"+log2);
logger.fatal("FATAL:"+log2);
4、编写日志配置文件(log4j2.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定时检查配置文件是否变化并根据变化重新加载,其中30指30秒 -->
<Configuration status="WARN" monitorInterval="30">
<!-- 先定义所有的appender -->
<Appenders>
<!-- 输出控制台的配置 -->
<Console name="Console" target="SYSTEM_OUT">
<!-- 日志的输出格式 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!-- 输出日志到文件 -->
<!-- Append:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 -->
<!-- bufferedIO和bufferSize表示将日志内容缓存到bufferSize大小后写入文件 -->
<File name="MyFile" append="true" fileName="logs/mylog.log"
bufferedIO="true" bufferSize="512">
<PatternLayout>
<Pattern>%d{MM-dd-yyyy} %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<!-- 然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
<Loggers>
<!-- 不希望LogEvent被按命名层次分别处理,增加additivity="false" -->
<Logger name="org.pm.spring" level="trace" additivity="false">
<AppenderRef ref="Console" />
</Logger>
<!-- 建立一个默认的root的logger -->
<Root level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="MyFile" />
</Root>
</Loggers>
</Configuration>