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使用总结相关推荐

  1. 在java下使用log4j2记录日志

    1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jar log4j-api-xx.jar log4j-web-xx.jar(web项目的需要引用) 3. ...

  2. log4j2配置实例[按小时记录日志文件]

    log4j2.xml文件配置实例:<?xml version="1.0" encoding="UTF-8"?> <configuration ...

  3. 还在用Logback?Log4j2的异步性能已经无敌了,还不快试试

    以下文章来源方志朋的博客,回复"666"获面试宝典 Logback  算是JAVA 里一个老牌的日志框架,从06年开始第一个版本,迭代至今也十几年了.不过logback最近一个稳定 ...

  4. 千万别中招!手把手教你复现Log4j2漏洞!

    来源:https://blog.csdn.net/qq_40989258/article/details/121862363 | 简介 ApacheLog4j2是一个开源的Java日志框架,被广泛地应 ...

  5. log4j2的xml的配置样例

    log4j2.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <Configuration st ...

  6. log4j2的配置文件log4j2.xml笔记

    一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...

  7. Java Web Application 自架构 四 Log4j2日志管理

    上一篇里,笔者将DAO做了一个通用的实现,不过在继续之前,我们好像忘了些什么.就是做任何程序都不可缺少的东东,一个对程序的功能没什么用,很容被遗忘,但是每个方法里都需要有的东西,那就是日志. 笔者以往 ...

  8. Spring mvc集成log4j2

    前期环境 Spring mvc + Maven + Idea 一.下面开始配置log4j2,先简单演示其如何配置,再仔细了解log4j2用法. 1.1  配置pom.xml,引用log4j2相关包 & ...

  9. log4j2在spring中的配置

    2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="UTF-8"?> ...

  10. appender log4j 扩展_java-如何在log4j2中创建自定义Appender?

    在log4j2中,其工作原理与在log4j-1.2中完全不同. 在log4j2中,您将为此创建一个插件. 该手册在此处提供了自定义附加程序示例的说明:[http://logging.apache.or ...

最新文章

  1. mybatis学习笔记(7)-输出映射
  2. DSDT亮度修复失败
  3. 2021 - 9 下旬 数据结构-线性表-循环队列-java实现代码
  4. 实现option上下移动_用jQuery实现lt;selectgt;选项上下移动 - 不要哀求 学会争取 若是如此 终有所获 - ITeye博客...
  5. spring 配置只读事务_只读副本和Spring Data第3部分:配置两个实体管理器
  6. python缓存技术_高级Python技术:如何在Python应用程序中实现缓存
  7. linux shell su root失败
  8. 16.火焰传感器实验
  9. 引用启动类型“WebService.Startup”的 OwinStartup 属性 冲突
  10. error launching app electron踩坑
  11. 查看linux镜像版本的命令,Linux镜像列表中 怎样决定自己下载哪个版本
  12. Ceph 命令 pool image 纠删
  13. 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!
  14. Ubuntu18.04LTS安装Nvidia显卡驱动
  15. Windows系统怎样配置PHP环境
  16. python import turtle as t_Python turtle库的学习笔记
  17. 出版社、作者和图书 出版社类:属性:编号,出版社名称,地址 方法:显示出版社的信息 构造:无参构造方法、有参构造方法 作者类:属性:作者的编号,姓名 方法:显
  18. windows通过独立ip形式访问docker容器
  19. lib 文件(基础)
  20. hack、crack站点收集

热门文章

  1. 在柱状图中找最大矩形——O(n)时间复杂度java实现
  2. Ext.Net 1.2.0_Ext.Net.TreePanel 勾选“纠结”发送给服务器端的方法
  3. SQL语句inner join,left join ,right join连接的不同之处
  4. vue部分样式无法修改
  5. win10修改时间同步服务器,解决win10时间服务器同步问题|重置win10时间服务配置...
  6. java作业不能运行_从Windows运行时,YARN作业失败
  7. java中数组合并的方法,数组合并--Java原生方法
  8. Swagger如何测试Date类型参数
  9. GMIC来了 HTC VIVE细化VR梦
  10. url传参(中文乱码)值得注意的地方