如果需要将不同的日志打印到不同的地方,则需要定义不同的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. C++对带有分隔符的字符串 分割为数字的通用解决方案

    需求: 数据库取出的字段类似于 "1,3,4" 然后用数字处理后,,比如 "1,2,3" 再存回去 #include<stdio.h> #inclu ...

  2. 查看sql执行的情况

    今天同事让看一个sql,无意中学到一个查看sql执行情况的命令,以前都是傻傻的等的,今后不用了 SELECT percent_complete FROM sys.dm_exec_requests

  3. 如何使用.net访问Access数据库 (转)

    前言:今天整理程序,看到之前写的一个Demo,也不知道是从哪里参考的了,写到这里,留作备用吧. 使用.net访问Access数据库:1.BL层:新增一个DataAccess类. Code].Defau ...

  4. Pascal's Triangle leetcode java(杨辉三角)

    题目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, ...

  5. Android -- View流程

    在自定义view中打log,view的显示共有三种,visible.invisible和gone,分别看一下log: gone onVisibilityChanged construct 2 para ...

  6. Nginx配置基于多域名、端口、IP的虚拟主机

    原文:https://www.cnblogs.com/ssgeek/p/9220922.html ------------------------------- Nginx配置基于多域名.端口.IP的 ...

  7. Java归去来第1集:手动给Eclipse配置Maven环境

    一.Eclipse配置Maven 1.1.下载Maven http://maven.apache.org/download.cgi,选择对应的版本,window下载apache-maven-3.5.3 ...

  8. linux不解压超大日志gz包直接查找特定内容

    gzip -dc myfile.gz | grep 'Exception' | more 或者 gzip -c myfile.gz | grep 'Exception' | more

  9. 如何让Fiddler可以抓取https的请求

    转自:https://jingyan.baidu.com/article/00a07f38bb4f4682d028dcd2.html Fiddler通过在本机开启了一个http的代理服务器来进行htt ...

  10. Ajax:HyperText/URI, HTML, Javascript, frame, frameset, DHTML/DOM, iframe, XMLHttp, XMLHttpRequest

    本文内容 Ajax 诞生 促使 Ajax 产生的 Web 技术演化 真正 Ajax Ajax 与 Web 2.0 Ajax 背后的技术 2008 年毕业,2011 年看了<Ajax 高级程序设计 ...