如果需要将不同的日志打印到不同的地方,则需要定义不同的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. Linux Command : top

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程所占用的系统资源,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  2. [转]应用RSACryptoServiceProvider类轻松实现RSA算法

    在我们现实当中经常会存在需要对某些数据进行加密保护 然后进行解密的操作,比方,我们需要对某些XML配置信息里面的某些数据进行加密,以防止任何人打开该XML配置信息都能正常的看到该配置信息里面的内容,从 ...

  3. asp.net使用jquery.form实现图片异步上传

    首先我们需要做准备工作: jquery下载:http://files.cnblogs.com/tianguook/jquery1.8.rar jquery.form.js下载:http://files ...

  4. Android开发者选项 介绍

    15个必知的Android开发者选项 https://www.jianshu.com/p/07b551ee260b  1.Stay awake 充电时保持屏幕唤醒,开发的时候,时不时的锁屏真是够了,开 ...

  5. Windows 安装配置 JIRA

    MySQL-5.5.28 JDK1.6.0_21 JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色. 一.MySQL建库和建账号 1. mysql中创建数据库jira ...

  6. CSS框架BluePrint

    做惯了后台程序的我们,是否对前端编程有兴趣么,通过CSS框架,使我们很容易的开发出基于Div+CSS布局的页面来,今天让我们了解下大名鼎鼎的blueprint CSS框架吧! 它的官方网站:http: ...

  7. js改变iframe 的src地址

    <script> function dizhi(){ document.getElementById("aaa").src='http://www.sohu.com' ...

  8. Android -- isInEditMode

    解释 Indicates whether this View is currently in edit mode. A View is usually in edit mode when displa ...

  9. unity3d Player Settings 中的Stripping Level(剥离等级)对应每个等级具体剥离了哪些库

    http://docs.unity3d.com/410/Documentation/ScriptReference/MonoCompatibility.html

  10. c++ string wstring 字符串替换

      int CStringTool::Replace(std::wstring& strContent, std::wstring& strReplace, std::wstring  ...