如果需要将不同的日志打印到不同的地方,则需要定义不同的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. PHP一句话木马研究

    最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法. 现总结如下: 方案一:回调函数 回调函数:Callback (即call then back 被主函数调用运算后会返回 ...

  2. jQuery 发送验证码倒计时按钮

    { wait:90, hsTime:function(that){ if (this.wait == 0) { $('#hsbtn').removeAttr("disabled") ...

  3. layer.tips定义弹出的宽度

    layer.tips('xxx', '.onlinetest', { tips: [1, '#3595CC'], area: ['500px', 'auto'], time: 4000 });

  4. Android教材 | 第三章 Android界面事件处理(一)—— 杰瑞教育原创教材试读

      前  言 JRedu Android应用开发中,除了界面编程外,另一个重要的内容就是组件的事件处理.在Android系统中,存在多种界面事件,比如触摸事件.按键事件.点击事件等.在用户交互过程中, ...

  5. mahout安装

    mahout是hadoop的一种高级应用.运行mahout需要提前安装好hadoop.hadoop的安装网上很多.而且也不复杂,这里不再讲述.这里默认hadoop已经安装完成. 1:下载二进制解压安装 ...

  6. Centos安装gcc及g++

    Centos支持yum安装,安装软件一般格式为yum install .......,注意安装时要先成为root用户. 按照这个思路,我想安装过程如下: 安装gcc:yum install gcc 安 ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十四)Structured Streaming:Encoder

    一般情况下我们在使用Dataset<Row>进行groupByKey时,你会发现这个方法最后一个参数需要一个encoder,那么这些encoder如何定义呢? 一般数据类型 static ...

  8. ueditor插入自定义内容和样式

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点   通过UEditor提供的API接口可以很方便的读写操作内容并设置编辑器里的样式   页 ...

  9. 【转】Java四种线程池的使用

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...

  10. common.js 2017

    String.IsNullOrEmpty = function (v) { return !(typeof (v) === "string" && v.length ...