如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个 Appender的日志级别、打印形式、输出位置!

配置log4j.properties文件如下:

  1. #########################################################################################
  2. # 日志信息配置
  3. LOG_DIR=c://logtest/
  4. log4j.rootLogger=WARN,rootlog,logSay
  5. #########################################################################################
  6. # 主日志控制 1G 30个循环文件 记录所有打印内容,不需要可以取消
  7. log4j.appender.rootlog=org.apache.log4j.DailyRollingFileAppender
  8. log4j.appender.rootlog.file=${LOG_DIR}/logtest.log
  9. log4j.appender.rootlog.layout=org.apache.log4j.PatternLayout
  10. log4j.appender.rootlog.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
  11. #########################################################################################
  12. # 打印到控制台
  13. log4j.appender.logSay=org.apache.log4j.ConsoleAppender
  14. log4j.appender.logSay.Target=System.out
  15. log4j.appender.logSay.layout=org.apache.log4j.PatternLayout
  16. log4j.appender.logSay.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
  17. #########################################################################################
  18. # test日志打印 10M 2个循环文件
  19. log4j.logger.com.cui.log.test1=warn,test
  20. log4j.appender.test=org.apache.log4j.RollingFileAppender
  21. log4j.appender.test.MaxFileSize=10240KB
  22. log4j.appender.test.MaxBackupIndex=2
  23. log4j.appender.test.File=${LOG_DIR}/test.log
  24. log4j.appender.test.layout=org.apache.log4j.PatternLayout
  25. log4j.appender.test.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
  26. #########################################################################################
  27. # test2日志打印 10M 2个循环文件
  28. log4j.logger.com.cui.log.test2=debug,test2
  29. log4j.appender.test2=org.apache.log4j.RollingFileAppender
  30. log4j.appender.test2.MaxFileSize=10240KB
  31. log4j.appender.test2.MaxBackupIndex=2
  32. log4j.appender.test2.File=${LOG_DIR}/test2.log
  33. log4j.appender.test2.layout=org.apache.log4j.PatternLayout
  34. log4j.appender.test2.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c-%L]-[%p] %m%n
  35. #########################################################################################

定义了一个主输出配置,然后定义了两个包的各自打印行为:

  1. package com.cui.log.test1;
  2. import org.apache.commons.logging.Log;
  3. import org.apache.commons.logging.LogFactory;
  4. /**
  5. * @说明 日志打印测试
  6. * @author 崔素强
  7. * @version 1.0
  8. * @since
  9. */
  10. public class Test1 {
  11. /**
  12. * 日志记录对象
  13. */
  14. private static Log log = LogFactory.getLog(Test1.class);
  15. /**
  16. * 测试
  17. * @param args
  18. */
  19. public static void main(String[] args) {
  20. log.debug("Test1");
  21. log.warn("Test1");
  22. log.info("Test1");
  23. log.error("Test1");
  24. }
  25. }

另外一个不同包的代码:

  1. package com.cui.log.test2;
  2. import java.io.IOException;
  3. import org.apache.commons.logging.Log;
  4. import org.apache.commons.logging.LogFactory;
  5. /**
  6. * @说明 日志打印测试
  7. * @author 崔素强
  8. * @version 1.0
  9. * @since
  10. */
  11. public class Test2 {
  12. /**
  13. * 日志记录对象
  14. */
  15. private static Log log = LogFactory.getLog(Test2.class);
  16. /**
  17. * 测试
  18. * @param args
  19. */
  20. public static void main(String[] args) throws IOException {
  21. log.debug("Test2");
  22. log.warn("Test2");
  23. log.info("Test2");
  24. log.error("Test2");
  25. }
  26. }

我们对两个不同打印的日志级别输出是不一样的,控制台也会根据各自配置进行打印,运行两个类!

控制台:

  1. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
  2. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1

另外一个:

  1. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
  2. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
  3. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
  4. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2

看输出文件打印:

主文件logtest.log:

  1. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
  2. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1
  3. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
  4. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
  5. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
  6. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2

测试1文件test.log:

  1. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-21]-[WARN] Test1
  2. 2012-11-27 14:03:50 [com.cui.log.test1.Test1-23]-[ERROR] Test1

测试2文件test2.log:

  1. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-21]-[DEBUG] Test2
  2. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-22]-[WARN] Test2
  3. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-23]-[INFO] Test2
  4. 2012-11-27 14:04:06 [com.cui.log.test2.Test2-24]-[ERROR] Test2

Log4j 把不同包的日志打印到不同位置的更多相关文章

  1. Storm中log4j日志打印不出来的解决办法

    使用storm命令启动JAVA进程的时候,发现log4j日志打印不出来,咋办呢? 解决办法如下(亲测): 删除strom/lib目录下的log4j-over-slf4j-1.6.6.jar strom ...

  2. log4j日志打印级别动态调整

    1,为什么日志打印级别要动态调整? 随着项目越来越大,访问量也越来越高,遇到问题时想要排查,可是日志一打开却刷的太快太快,不好排查问题,有的时候甚至因为短时间打印日志太多,严重影响了性能,这个时候日志 ...

  3. java-log4j日志打印

    参考路径: https://blog.csdn.net/edward0830ly/article/details/8250412 https://www.cnblogs.com/ITtangtang/ ...

  4. mybatis中的一点优化问题(数据库连接分开,别名,日志打印)

    一:数据的链接 1.目录 2.新建一个db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3308/mybati ...

  5. web项目开启日志打印

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79045188 参考文章地址:点击打开链接,写的很清晰 一:导入log4j包或依赖     ...

  6. springBoot项目配置日志打印管理(log4j2)

    1.修改pom文件引用log4j2相关jar包 依赖代码: <!-- log4j2 start --><!-- Spring Boot log4j2依赖 --><depe ...

  7. Java日志打印方法

    一.使用log4j打印日志 1. 下载log4j.jar和commons-logging.jar.     log4j.jar下载地址:http://logging.apache.org/log4j/ ...

  8. log4j2----JAVA日志打印

    注意:本篇文章是以log4j2.x 为例的,并不是log4j 1.x log4j 就是log for java  , log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中 ...

  9. slf4j+log4j在Java中实现日志记录

    小Alan今天来跟大家聊聊开发中既简单又常用但必不可少的一样东西,那是什么呢?那就是日志记录,日志输出,日志保存. 后面就统一用日志记录四个字来形容啦. 日志记录是项目的开发中必不可少的一个环节,特别 ...

随机推荐

  1. JavaScript:Date 对象

    ylbtech-JavaScript:Date 对象 1.返回顶部 Date 对象 Date 对象用于处理日期和时间. 创建 Date 对象的语法: var myDate=new Date() 注释: ...

  2. PPPOE数据包转换及SharpPcap应用

    在最近写的一个程序中需要用到Sniffer功能,但由于通过.net自身的Socket做出来的Sniffer不能达到实际应用的要求(如不能监听WIFI数据包)所以找到了WinPCAP的.NET库Shar ...

  3. Windows server 2012 R2 与 Windows 2016 的双系统重启选项

    一台主机上,同时安装了Windows 2012R2还有Windows 2016, 但是如何能在任意一个系统重启到另一个呢? 下图中,在Win2012R2中,无法选择重启到2016中. 解决方案 === ...

  4. Linq-Contains查询

    customers.Where(c => c.Name.Contains("john"));

  5. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十一)定制一个arvo格式文件发送到kafka的topic,通过Structured Streaming读取kafka的数据

    将arvo格式数据发送到kafka的topic 第一步:定制avro schema: { "type": "record", "name": ...

  6. [Docker] Driver Bridge network for linking containers

    In previous postwe have seen how to link two container together by using `--link`: # docker run -d - ...

  7. OpenGL ES 3.0之Uniform详解

    Uniform是变量类型的一种修饰符,是OpenGL ES  中被着色器中的常量值,使用存储各种着色器需要的数据,例如:转换矩阵.光照参数或者颜色. uniform 的空间被顶点着色器和片段着色器分享 ...

  8. window.btoa

    概述 将ascii字符串或二进制数据转换成一个base64编码过的字符串,该方法不能直接作用于Unicode字符串. 语法 var encodedData = window.btoa(stringTo ...

  9. LabVIEW上位机与串口通信

    渊源 大一的时候,学校开了门公共选修课,叫LabVIEW编程,当时的我当然还不知道LabVIEW是啥东东,但还是选了.上课的老师是机械学院的一个副教授.他给我们展示了好几个用LabVIEW做的项目.譬 ...

  10. Spring 开发环境搭建(二)

    为了方面,直接使用eclipse,创建maven工程,创建成功之后 一.修改pom.xml,为了方面我就把Spring相关的jar包都引用了 <project xmlns="http: ...