Log4j2使用总结
Log4j 2 包含了基于LMAX 分离库的下一代的异步日志系统,在多线程环境下,异步日志系统比 Log4j 1.x 和Logback 提高了10倍性能提升(吞吐量和延迟率 )。原文如下:
Log4j 2 contains next-generation Asynchronous Loggers based on the LMAX Disruptor library. In multi-threaded scenarios Asynchronous Loggers have 10 times higher throughput and orders of magnitude lower latency than Log4j 1.x and Logback.
Log4j2目前已经出到了beta8版本,估计beta9在最近一周将放出,试用了下,感觉还不错,做如下总结!
我是从logback迁移到log4j2,
删除掉原有的包 log4j-over-slf4j-1.6.4.jar logback-classic-1.0.7.jar logback-core-1.0.7.jar slf4j-api-1.6.4.jar
增添以下的包 log4j-over-slf4j-1.7.5.jar log4j-api-2.0-beta8.jar log4j-core-2.0-beta8.jar log4j-slf4j-impl-2.0-beta8.jar
由于作者推荐,为了性能考虑,尽量不要使用slf4j,但我依赖的第三方框架比如spring有对slf4j使用,所以对JAR包做了以上的取舍,所以原有代码中要做如下的改动
改动前:import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(OOXX.class);
改动后:iimport org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
private static final Logger logger = LogManager.getLogger(OOXX.class);
配置文件log4j2.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- status=debug 可以查看log4j的装配过程 -->
<configuration status="off"><properties><property name="LOG_HOME">/log/fish</property><!-- 日志备份目录 --><property name="BACKUP_HOME">{LOG_HOME}/backup</property><property name="STAT_NAME">stat</property><property name="SERVER_NAME">global</property></properties><appenders><!-- 定义控制台输出 --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /></Console><!-- 程序员调试日志 --><FastRollingFile name="DevLog" fileName="${LOG_HOME}/${SERVER_NAME}"filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log"><PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true" /></Policies></FastRollingFile><!-- 游戏产品数据分析日志 --><FastRollingFile name="ProductLog"fileName="${LOG_HOME}/${SERVER_NAME}_${STAT_NAME}"filePattern="${LOG_HOME}/${SERVER_NAME}_${STAT_NAME}.%d{yyyy-MM-dd-HH}.log"><PatternLayoutpattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /><Policies><TimeBasedTriggeringPolicy interval="1"modulate="true" /></Policies></FastRollingFile></appenders><loggers><!-- 3rdparty Loggers --><logger name="org.springframework.core" level="info"></logger><logger name="org.springframework.beans" level="info"></logger><logger name="org.springframework.context" level="info"></logger><logger name="org.springframework.web" level="info"></logger><logger name="org.jboss.netty" level="warn"></logger><logger name="org.apache.http" level="warn"></logger><!-- Game Stat logger --><logger name="com.u9.global.service.log" level="info"additivity="false"><appender-ref ref="ProductLog" /></logger><!-- Root Logger --><root level="DEBUG"><appender-ref ref="DevLog" /><appender-ref ref="Console" /></root></loggers>
</configuration>
存在问题:在Eclipse下一切运行正常,如果把应用打包成jar包发布后,cmd命令行模式下,即使Console开着的情况下,也没法输出,文件输出也没有任何日志。
Log4j2使用总结相关推荐
- 在java下使用log4j2记录日志
1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jar log4j-api-xx.jar log4j-web-xx.jar(web项目的需要引用) 3. ...
- log4j2配置实例[按小时记录日志文件]
log4j2.xml文件配置实例:<?xml version="1.0" encoding="UTF-8"?> <configuration ...
- 还在用Logback?Log4j2的异步性能已经无敌了,还不快试试
以下文章来源方志朋的博客,回复"666"获面试宝典 Logback 算是JAVA 里一个老牌的日志框架,从06年开始第一个版本,迭代至今也十几年了.不过logback最近一个稳定 ...
- 千万别中招!手把手教你复现Log4j2漏洞!
来源:https://blog.csdn.net/qq_40989258/article/details/121862363 | 简介 ApacheLog4j2是一个开源的Java日志框架,被广泛地应 ...
- log4j2的xml的配置样例
log4j2.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <Configuration st ...
- log4j2的配置文件log4j2.xml笔记
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- Java Web Application 自架构 四 Log4j2日志管理
上一篇里,笔者将DAO做了一个通用的实现,不过在继续之前,我们好像忘了些什么.就是做任何程序都不可缺少的东东,一个对程序的功能没什么用,很容被遗忘,但是每个方法里都需要有的东西,那就是日志. 笔者以往 ...
- Spring mvc集成log4j2
前期环境 Spring mvc + Maven + Idea 一.下面开始配置log4j2,先简单演示其如何配置,再仔细了解log4j2用法. 1.1 配置pom.xml,引用log4j2相关包 & ...
- log4j2在spring中的配置
2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="UTF-8"?> ...
- appender log4j 扩展_java-如何在log4j2中创建自定义Appender?
在log4j2中,其工作原理与在log4j-1.2中完全不同. 在log4j2中,您将为此创建一个插件. 该手册在此处提供了自定义附加程序示例的说明:[http://logging.apache.or ...
最新文章
- mybatis学习笔记(7)-输出映射
- DSDT亮度修复失败
- 2021 - 9 下旬 数据结构-线性表-循环队列-java实现代码
- 实现option上下移动_用jQuery实现lt;selectgt;选项上下移动 - 不要哀求 学会争取 若是如此 终有所获 - ITeye博客...
- spring 配置只读事务_只读副本和Spring Data第3部分:配置两个实体管理器
- python缓存技术_高级Python技术:如何在Python应用程序中实现缓存
- linux shell su root失败
- 16.火焰传感器实验
- 引用启动类型“WebService.Startup”的 OwinStartup 属性 冲突
- error launching app electron踩坑
- 查看linux镜像版本的命令,Linux镜像列表中 怎样决定自己下载哪个版本
- Ceph 命令 pool image 纠删
- 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!
- Ubuntu18.04LTS安装Nvidia显卡驱动
- Windows系统怎样配置PHP环境
- python import turtle as t_Python turtle库的学习笔记
- 出版社、作者和图书 出版社类:属性:编号,出版社名称,地址 方法:显示出版社的信息 构造:无参构造方法、有参构造方法 作者类:属性:作者的编号,姓名 方法:显
- windows通过独立ip形式访问docker容器
- lib 文件(基础)
- hack、crack站点收集
热门文章
- 在柱状图中找最大矩形——O(n)时间复杂度java实现
- Ext.Net 1.2.0_Ext.Net.TreePanel 勾选“纠结”发送给服务器端的方法
- SQL语句inner join,left join ,right join连接的不同之处
- vue部分样式无法修改
- win10修改时间同步服务器,解决win10时间服务器同步问题|重置win10时间服务配置...
- java作业不能运行_从Windows运行时,YARN作业失败
- java中数组合并的方法,数组合并--Java原生方法
- Swagger如何测试Date类型参数
- GMIC来了 HTC VIVE细化VR梦
- url传参(中文乱码)值得注意的地方