1.丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。
2.log4j2使用了disruptor技术,在多线程环境下,性能高于logback等10倍以上。
3.(garbage free)之前的版本会产生非常多的临时对象,会造成GC频繁,log4j2则在这方面上做了优化,减少产生临时对象。尽可能少的GC
4.利用插件系统,使得扩展新的appender,filter,layout等变得容易,log4j不可以扩展 插件????
5.因为插件系统的简单性,所以在配置的时候,可以不用具体指定所要处理的类型。class
6.可以自定义level
7.Java 8 lambda support for lazy logging
8.Support for Message objects
9.对filter的功能支持的更强大
10.系统日志(Syslog)协议supports both TCP and UDP
11.利用jdk1.5并发的特性,减少了死锁的发生。
Socket LogEvent SerializedLayout
kafka queue
一个基本的Log4j2.xml配置:
<?xml version="1.0" encoding="UTF-8"?> <!-- 在运行时,可以动态修改配置文件,不用重启服务,在固定时长更新一次配置文件。monitorInterval设置更新配置文件时长, 单位为seconds , min senconds >= 5secondes --> <Configuration monitorInterval="30" > <Properties> <Property name="log.path">E:\log4j2_log\</Property> </Properties> <Appenders> <!-- 控制台appdener--> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout charset="UTF-8" pattern="%m%n"/> </Console> <!-- File appdener--> <File name="MyFile" fileName="logs/app.log" bufferedIO="true" > <PatternLayout> <Charset>UTF-8</Charset> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> </File> <!-- RandomAccessFile 性能高于 File--> <RandomAccessFile name="MyFile" fileName="logs/RandomAccessFile.log" > <PatternLayout> <Charset>UTF-8</Charset> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> </RandomAccessFile> <!--<RollingFile></RollingFile>--> <!-- 注意:一般情况下都使用RollingRandomAccessFile 。 RollingRandomAccessFile可以按照日志名称的格式进行定期备份,拥有一定的备份策略。 1.是否压缩备份日志:直接在filePattern属性的文件名称最后加对应的压缩后缀,如gzip压缩用 .gz --> <RollingRandomAccessFile name="RollingRandomAccessFile" fileName="logs/RollingRandomAccessFile.log" filePattern="logs/RollingRandomAccessFile-%d{yyyy-MM-dd}-%i.log.gz"> <PatternLayout> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> <!-- 备份策略:满足其中一个就可以启动备份--> <Policies> <!-- interval 多久执行一次备份,单位为 RollingRandomAccessFile的属性filePattern中%d{yyyy-MM-dd}的最小时间单位,此处是天--> <TimeBasedTriggeringPolicy interval="1" modulate="true"/> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> <!-- 默认的备份策略:max="7"表示最多只保留7份日志,fileIndex属性是在拥有多个备份日志的时候,命令是以递增的数为文件名,max值时值大的文件是最新的内容,min值时值大的是最久的内容--> <DefaultRolloverStrategy fileIndex="max" max="7"> <!-- 删除指定目录下60天之前的日志--> <Delete basePath="${log.path}" maxDepth="2"> <IfFileName glob="*/app-*.log.gz" /> <IfLastModified age="60d" /> </Delete> </DefaultRolloverStrategy> </RollingRandomAccessFile> <!-- 异步 appder ,使用的是ArrayBlocingQueue --> <Async name="Async"> <AppenderRef ref="MyFile"/> </Async> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="MyFile"/> </Root> <!-- logger additivity属性:如果设置为true(默认值)则log会被打印两次,这里的logger和root--> <Logger name="com.foo.bar.MyApp" level="info" additivity="true"> <appender-ref ref="RandomAccessFile"/> </Logger> <!-- 异步 logger:使用了disruptor类库,代替Jdk中的queue,性能提高很多 includeLocation属性是指layout中的 %C or $class, %F or %file, %l or %location, %L or %line, %M or %method,异步logger默认为false,如果设置为true,会影响logger的性能 --> <AsyncLogger name="com.foo.test" level="info" additivity="false" includeLocation="false"> <appender-ref ref="log4j2test"/> <appender-ref ref="STDOUT"/> </AsyncLogger> </Loggers> </Configuration>
使用文档: 文档下载
用户手册:下载
官网 http://logging.apache.org/log4j/2.x/
相关推荐
Log4j2学习笔记,引入log4j2的依赖-log4j2.xml配置模板-application.properties文件配置-使用
若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...
很不错的Log4j的帮助手册,让初学者更容易上手,让精通者更加精通
下面小编就为大家带来老生常谈Log4j和Log4j2的区别(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的....如果本地要测试,可以把log4j2-test.xml放到classpath,而正式环境使用log4j2.xml,则在打包部署的时候不要打包log4j2-test.xml即可。
描述Log4j2的配置详情及相对Log4j的优点,包括效率测试程序
apache下载太慢,特搬到国内下载。修复log4j漏洞log4j2下载最新log4j2.16.0下载
Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效,非常好用老版的BurpSuite和新版的都可以使用。祝大家挖洞顺利(工具仅用于学习交流)
Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...
log4j中文手册 下载后解压即可。 pdf方便使用,放心下载。
log4j2 最新版2.0.2的英文使用手册
Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-...
Log4j2-Scan
log4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rarlog4j手册.rar