log4j输出多个自定义日志文件

标签: log4j 定义 日志文件 | 发表时间:2016-01-25 18:16 | 作者:longload
出处:http://www.iteye.com

logger是category的子类,category现在已经不提倡使用。但是现在部分jar依然使用的category,所以需要使用log4j.category.org.mybatis控制,例如:org.mybatis,org.apache等

-----------下面为转载----------------------

 常见的log4j.properties文件,它是在控制台和logger.log文件中记录日志:

log4j.rootLogger=DEBUG, stdout, logfile

 

log4j.category.org.springframework=ERROR

log4j.category.org.apache=INFO

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=logger.log

log4j.appender.logfile.MaxFileSize=512KB

log4j.appender.logfile.MaxBackupIndex=5

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

  

如果想对不同的类输出不同的文件(以cn.com.Test为例),先要在Test.java中定义:

private static Log logger = LogFactory.getLog(Test.class);

  然后在log4j.properties中加入:

log4j.logger.cn.com.Test= DEBUG, test

log4j.appender.test=org.apache.log4j.FileAppender

log4j.appender.test.File=${myweb.root}/WEB-INF/log/ test.log

log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%d %p [%c] - %m%n

  也就是让cn.com.Test中的logger使用log4j.appender.test所做的配置。

 

  但是,如果在同一类中需要输出多个日志文件呢?其实道理是一样的,先在Test.java中定义:

private static Log logger1 = LogFactory.getLog("myTest1");

private static Log logger2 = LogFactory.getLog("myTest2");

  然后在log4j.properties中加入:

log4j.logger.myTest1= DEBUG, test1

log4j.appender.test1=org.apache.log4j.FileAppender

log4j.appender.test1.File=${myweb.root}/WEB-INF/log/ test1.log

log4j.appender.test1.layout=org.apache.log4j.PatternLayout

log4j.appender.test1.layout.ConversionPattern=%d %p [%c] - %m%n

  

log4j.logger.myTest2= DEBUG, test2

log4j.appender.test2=org.apache.log4j.FileAppender

log4j.appender.test2.File=${myweb.root}/WEB-INF/log/ test2.log

log4j.appender.test2.layout=org.apache.log4j.PatternLayout

log4j.appender.test2.layout.ConversionPattern=%d %p [%c] - %m%n

  也就是在用logger时给它一个自定义的名字(如这里的"myTest1"),然后在log4j.properties中做出相应配置即可。别忘了不同日志要使用不同的logger(如输出到 test1.log的要用 logger1.info("abc"))。

 

  还有一个问题,就是这些自定义的日志默认是同时输出到log4j.rootLogger所配置的日志中的,如何能只让它们输出到自己指定的日志中呢?别急,这里有个开关:

log4j. additivity.myTest1 = false

  它用来设置是否同时输出到log4j.rootLogger所配置的日志中,设为false就不会输出到其它地方啦!注意这里的"myTest1"是你在程序中给logger起的那个自定义的名字!

如果你说,我只是不想同时输出这个日志到log4j.rootLogger所配置的logfile中,stdout里我还想同时输出呢!那也好办,把你的log4j.logger.myTest1 = DEBUG, test1改为下式就OK啦!

log4j.logger.myTest1=DEBUG, test1



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [log4j 定义 日志文件] 推荐:

log4j输出多个自定义日志文件

- - 非技术 - ITeye博客
logger是category的子类,category现在已经不提倡使用. 但是现在部分jar依然使用的category,所以需要使用log4j.category.org.mybatis控制,例如:org.mybatis,org.apache等. -----------下面为转载----------------------.

log4j与logback自定义文件存放目录方法

- - 研发管理 - ITeye博客
       为了方便日志的管理,我们在集群之间通过网络挂载的方式创建了一个共享目录即在所有的服务器上均可以访问此磁盘目录. 因此我们在写日志时需要根据集群的环境动态的设定日志的存储路径.        我们的工程日志的记录采用了两种方式log4j和sl4f+logback. 一、log4j自定义路径.

log4j的MDC

- - 行业应用 - ITeye博客
原文地址: http://blog.csdn.net/huxin1/article/details/5736227. NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信息(context infomation),从而便于在log中使用这些上下文信息.

Apache Log4j 2.0介绍

- - CSDN博客推荐文章
Apache Log4j 2.0介绍. 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs. Apache Log4j是著名的Java日志框架之一,在早些年应用最广. 但近两年来,随着SLF4J和LogBack的兴起,很多流行的开源框架在日志模块方面逐步转移到SLF4J+LogBack上,Log4j日渐衰落.

log4j实用配置

- - CSDN博客架构设计推荐文章
第一步:加入log4j-1.2.8.jar到lib下. 第二步:在CLASSPATH下建立log4j.properties. 此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名. 等级可分为OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger.

Log4j详细配置(转)

- - Web前端 - ITeye博客
原文地址:Log4j.properties配置详解作者:大海巨浪. Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局). 这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出. 综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置.

Log4j最佳实践(原) - Mainz

- - 博客园_Mainz's Blog
本文是结合项目中使用 Log4j总结的最佳实践,非转载. 网上可以找到的是这一篇《 Log4j最佳实践》. 本来 Log4j使用是非常简单的,无需多介绍其用法,这只是在小型项目中;但在 大型的项目中使用 log4j不太一样. 大型项目非常依赖日志,因为解决线上问题必须依靠log,依靠大量的日志.

log4j日志性能优化

- - 编程语言 - ITeye博客
       在软件系统中,打日志几乎是每个系统都会使用的行为. 不管是用来记录系统健康状态,辅助问题定位,还是收集数据,以便后续数据分析等,日志都起着举足轻重的作用. 但是IO的阻塞行为和磁盘的读写速度低下意味着写日志并非是没有代价的.           在很多系统中,日志模块用的都是log4j,打日志用的都是同步方法,基本配置如下:.

LOG4J日志性能建议

- - 企业架构 - ITeye博客
原文地址: http://fredpuls.com/site/softwaredevelopment/java/log4j/log4j_performance_tips.htm. 使用日志可能会让你的应用性能下降20% —— 很难相信吧,但是却是真的可能. 本文讨论一些尽可能提升日志性能的方法,.

nginx 日志文件切割

- - 企业架构 - ITeye博客
转载: http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html. 偶然发现access.log有21G大,所以将其切割. Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点. 但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.