标签:-- 不同的 情况下 针对 邮箱 自身 验证 sys 版本号
log4j-core-xx.jar
log4j-api-xx.jar
我们知道,要在某个类中使用log4j记录日志,只需要申明下面的成员变量(其实不一定要是成员变量,只是为了方便调用而已)
private static final Logger logger = LogManager.getLogger(LoggerController.class);
这里getLogger有一个参数指定的是这个logger的名称。基本方式是类名.Class
声明了Logger对象,我们就可以在代码中使用他了。
我们现在要调用logger的方法,不过在这个Logger对象中,有很多方法,所以要先了解log4j的日志级别,log4j规定了默认的几个级别:trace<debug<info<warn<error<fatal等。这里要说明一下:
trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。
举个例子:
?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</appenders>
<loggers>
<!--我们只让这个logger输出trace信息,其他的都是error级别-->
<!--
additivity开启的话,由于这个logger也是满足root的,所以会被打印两遍。
不过root logger 的level是error,为什么Bar 里面的trace信息也被打印两遍呢
-->
<logger name="logger.LoggerController" level="trace" additivity="false">
<appender-ref ref="Console"/>
</logger>
<root level="error">
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>
简单介绍下这个配置文件:
来看我们添加的配置文件log4j2.xml,以Configuration为根节点,有一个status属性(关闭自身日志输出 status="OFF">),这个属性表示log4j2本身的日志信息打印级别。如果把status改为TRACE再执行测试代码,可以看到控制台中打印了一些log4j加载插件、组装logger等调试信息。
%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n
2018/09/02 22:15:13.289 ERROR logger.LoggerController 24 log - error
方法是通过引用上面定义的logger,注意,appender-ref引用的值是上面每个appender的name,而不是节点名称。
***关于additivity属性:它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。
1 <properties> 2 <property name="filename">demo.log</property> 3 <property name="path">F:/workSpaces3/logger/log/</property> 4 </properties> 5 6 <!--输出到本地文件--> 7 <RollingFile name="file" fileName="${path}${filename}" 8 filePattern = "${path}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz"> 9 <!--日志文件的布局--> 10 <patterLayout pattern="%d{yyyy/MM/dd ‘at‘ HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> 11 <!--文件中所需要记录的信息--> 12 <Filters> 13 <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/> 14 </Filters> 15 <!--当日志文件达到一定大小是生成一个日志文件--> 16 <Policies> 17 <SizeBasedTriggeringPolicy size="1 MB"/> 18 </Policies> 19 <!--日志策略:日志的最大值为20MB--> 20 <DefaultRolloverStrategy max="20"/> 21 </RollingFile>
<properties>标签定义了日志文件的路径和名字
filePattern = "${path}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz"表示将日志打包成压缩包
<Policies>
<!--设置每天打包日志一次-->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!--设置日志文件满1MB后打包-->
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
标签:-- 不同的 情况下 针对 邮箱 自身 验证 sys 版本号
原文地址:https://www.cnblogs.com/xiaocao123/p/9576528.html