Log4j 把不同包的日志打印到不同位置
如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个 Appender的日志级别、打印形式、输出位置!
配置log4j.properties文件如下:
- #########################################################################################
- # 日志信息配置
- LOG_DIR=c://logtest/
- log4j.rootLogger=WARN,rootlog,logSay
- #########################################################################################
- # 主日志控制 1G 30个循环文件 记录所有打印内容,不需要可以取消
- log4j.appender.rootlog=org.apache.log4j.DailyRollingFileAppender
- log4j.appender.rootlog.file=${LOG_DIR}/logtest.log
- log4j.appender.rootlog.layout=org.apache.log4j.PatternLayout
- log4j.appender.rootlog.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
- #########################################################################################
- # 打印到控制台
- log4j.appender.logSay=org.apache.log4j.ConsoleAppender
- log4j.appender.logSay.Target=System.out
- log4j.appender.logSay.layout=org.apache.log4j.PatternLayout
- log4j.appender.logSay.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
- #########################################################################################
- # test日志打印 10M 2个循环文件
- log4j.logger.com.cui.log.test1=warn,test
- log4j.appender.test=org.apache.log4j.RollingFileAppender
- log4j.appender.test.MaxFileSize=10240KB
- log4j.appender.test.MaxBackupIndex=2
- log4j.appender.test.File=${LOG_DIR}/test.log
- log4j.appender.test.layout=org.apache.log4j.PatternLayout
- log4j.appender.test.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
- #########################################################################################
- # test2日志打印 10M 2个循环文件
- log4j.logger.com.cui.log.test2=debug,test2
- log4j.appender.test2=org.apache.log4j.RollingFileAppender
- log4j.appender.test2.MaxFileSize=10240KB
- log4j.appender.test2.MaxBackupIndex=2
- log4j.appender.test2.File=${LOG_DIR}/test2.log
- log4j.appender.test2.layout=org.apache.log4j.PatternLayout
- log4j.appender.test2.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
- #########################################################################################
定义了一个主输出配置,然后定义了两个包的各自打印行为:
- package com.cui.log.test1;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- /**
- * @说明 日志打印测试
- * @author 崔素强
- * @version 1.0
- * @since
- */
- public class Test1 {
- /**
- * 日志记录对象
- */
- private static Log log = LogFactory.getLog(Test1.class);
- /**
- * 测试
- * @param args
- */
- public static void main(String[] args) {
- log.debug("Test1");
- log.warn("Test1");
- log.info("Test1");
- log.error("Test1");
- }
- }
另外一个不同包的代码:
- package com.cui.log.test2;
- import java.io.IOException;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- /**
- * @说明 日志打印测试
- * @author 崔素强
- * @version 1.0
- * @since
- */
- public class Test2 {
- /**
- * 日志记录对象
- */
- private static Log log = LogFactory.getLog(Test2.class);
- /**
- * 测试
- * @param args
- */
- public static void main(String[] args) throws IOException {
- log.debug("Test2");
- log.warn("Test2");
- log.info("Test2");
- log.error("Test2");
- }
- }
我们对两个不同打印的日志级别输出是不一样的,控制台也会根据各自配置进行打印,运行两个类!
控制台:
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1
另外一个:
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2
看输出文件打印:
主文件logtest.log:
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2
测试1文件test.log:
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
- 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1
测试2文件test2.log:
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
- 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2
Log4j 把不同包的日志打印到不同位置的更多相关文章
- Storm中log4j日志打印不出来的解决办法
使用storm命令启动JAVA进程的时候,发现log4j日志打印不出来,咋办呢? 解决办法如下(亲测): 删除strom/lib目录下的log4j-over-slf4j-1.6.6.jar strom ...
- log4j日志打印级别动态调整
1,为什么日志打印级别要动态调整? 随着项目越来越大,访问量也越来越高,遇到问题时想要排查,可是日志一打开却刷的太快太快,不好排查问题,有的时候甚至因为短时间打印日志太多,严重影响了性能,这个时候日志 ...
- java-log4j日志打印
参考路径: https://blog.csdn.net/edward0830ly/article/details/8250412 https://www.cnblogs.com/ITtangtang/ ...
- mybatis中的一点优化问题(数据库连接分开,别名,日志打印)
一:数据的链接 1.目录 2.新建一个db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3308/mybati ...
- web项目开启日志打印
原文链接:http://blog.csdn.net/qq_37936542/article/details/79045188 参考文章地址:点击打开链接,写的很清晰 一:导入log4j包或依赖 ...
- springBoot项目配置日志打印管理(log4j2)
1.修改pom文件引用log4j2相关jar包 依赖代码: <!-- log4j2 start --><!-- Spring Boot log4j2依赖 --><depe ...
- Java日志打印方法
一.使用log4j打印日志 1. 下载log4j.jar和commons-logging.jar. log4j.jar下载地址:http://logging.apache.org/log4j/ ...
- log4j2----JAVA日志打印
注意:本篇文章是以log4j2.x 为例的,并不是log4j 1.x log4j 就是log for java , log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中 ...
- slf4j+log4j在Java中实现日志记录
小Alan今天来跟大家聊聊开发中既简单又常用但必不可少的一样东西,那是什么呢?那就是日志记录,日志输出,日志保存. 后面就统一用日志记录四个字来形容啦. 日志记录是项目的开发中必不可少的一个环节,特别 ...
随机推荐
- PHP一句话木马研究
最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法. 现总结如下: 方案一:回调函数 回调函数:Callback (即call then back 被主函数调用运算后会返回 ...
- 第十三章 redis-cluster原理
一.基本定义 虚拟槽slot分区算法,优点是扩容缩容简单:直接把slot及每个slot上的数据进行缩放即可 redis定义了0-16383(总共为16384个slot,即214个slot) slot会 ...
- Search Insert Position leetcode java
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- 怎样用纯HTML和CSS更改默认的上传文件按钮样式
如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦.看看下面的不同浏览器的截图.很明显的,他们长得很不一样. 我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览 ...
- (转载)Java8新的日期API LocalDate, LocalTime
前言 由于Java Date的各种问题,Java8推出了新的日期API,很受一拨人的追捧. 为什么我们需要新的Java日期/时间API? 在开始研究Java 8日期/时间API之前,让我们先来看一下为 ...
- 一文读懂「Attention is All You Need」| 附代码实现
https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247486960&idx=1&sn=1b4b9d7ec7a9f4 ...
- bp算法中为什么会产生梯度消失?
作者:维吉特伯链接:https://www.zhihu.com/question/49812013/answer/148825073来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- Linux系统中关于Sqlite3中文乱码问题及解决办法
新做的一个项目在本地(Win8)测试时没有问题,但传到服务器(Linux)时从Sqlite3数据库查询到的数据中文却是乱码(数据库中是正常的) 将php文件.html文件都设置成统一的utf8还是一样 ...
- OpenGL ES Shading Language中应尽量避免使用循环
In addition to basic if-then-else statements, it is possible to write for, while, and do-while loo ...
- java语言特性之一
package java.util.Collections; public static int indexOfSubList(List<?> source, List<?> ...