`

(转)log4j 一个线程记录一个日志如何配置?

    博客分类:
  • Java
阅读更多

log4j 一个线程记录一个日志如何配置?

现有一后台java程序,分四个线程去运行,想通过log4j 一个线程记录一个日志,如何搞? 求高人指教,谢谢!

 

Java Web 31 次浏览 2011-06-18 15:48

 

5 个回答

 

四个线程分别使用不同的日志文件就行了。
2011-06-18 15:49 推荐: 0 次

 

引用 1 楼 im110 的回复:

四个线程分别使用不同的日志文件就行了。

具体如何搞?
我现在是这么做的
新建四个log4j.properties 1-4
新建四个X.log 日志文件,每个properties文件指定一个日志文件 
然后
protected Logger log = Logger.getLogger(getClass());
public void run() {
PropertyConfigurator.configure("log4j"+(i+1)+".properties");
...
...
...
log.debug(i+"xxxxxxxxxxxx");
}

但这样搞不行,四个日志文件里相互的线程都有
2011-06-18 15:58 推荐: 0 次

 

求高人~~~
2011-06-21 08:41 推荐: 0 次

 

Java code
publicclass ThreadLog1 extends Thread { privatestatic Logger logger = Logger.getLogger("file_1"); privateboolean stop =false; publicvoid run() { while(!stop){ System.out.println("I am ThreadLog1"); logger.info("I am ThreadLog1"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } publicboolean isStop() { return stop; } publicvoid setStop(boolean stop) { this.stop = stop; } }

Java code
publicclass ThreadLog2 extends Thread { privatestatic Logger logger = Logger.getLogger("file_2"); privateboolean stop =false; publicvoid run() { while(!stop){ System.out.println("I am ThreadLog2"); logger.info("I am ThreadLog2"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } publicboolean isStop() { return stop; } publicvoid setStop(boolean stop) { this.stop = stop; } publicstaticvoid main(String []args){ ThreadLog1 log1 =new ThreadLog1(); ThreadLog2 log2 =new ThreadLog2(); log1.start(); log2.start(); } }


log4j.properties:

log4j.logger.file_1 = DEBUG,file_1
log4j.appender.file_1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file_1.layout=org.apache.log4j.PatternLayout
log4j.appender.file_1.layout.ConversionPattern=\n[%p %d{yyyy-MM-dd HH:mm:ss SSS}[%l]]\n%m
log4j.appender.file_1.file=d:/log/file_1/log.txt
log4j.additivity.file_1=false

log4j.logger.file_2 = DEBUG,file_2
log4j.appender.file_2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file_2.layout=org.apache.log4j.PatternLayout
log4j.appender.file_2.layout.ConversionPattern=\n[%p %d{yyyy-MM-dd HH:mm:ss SSS}[%l]]\n%m
log4j.appender.file_2.file=d:/log/file_2/log.txt
log4j.additivity.file_2=false
2011-06-21 09:41 推荐: 0 次

非常感谢 yangxuan0418,原来可以Logger.getLogger("file_2"); 这样用,谢谢!
不过今上 午发现还有一个方法可以实现 就是改用log4j.xml,利用org.apache.log4j.varia.LevelRangeFilter和 org.apache.log4j.varia.StringMatchFilter可以做到分级分线程记录日志,希望也可以给大家一些启示。

分享到:
评论

相关推荐

    Log4j日志管理系统简单使用说明

     org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  org.apache.log4j.WriterAppender(将日志信息...

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

    log4pb, pb的日志组件, 后台线程记录日志

    日志是异步记录的(每个记录方式开了个线程在后台负责记录处理),大大提高应用程序性能 // 8. 功能可以通过数据库表选择配置(如,多少种记录方式,各线程工作频率) // 9. 日志的数据库记录方式,可以配置缓区大小,...

    log4j:ERROR Failed to rename错误解决办法

    在Tomcat6下使用Log4j记录日志,天创建新日志文件时(日志文件设置为:org.apache.log4j.DailyRollingFileAppender)报: log4j:ERROR Failed to rename错误; 网上查找了下原因,大概意思是日志文件始终被占有,所以...

    log4j-core.jar的日志核心包

    log4j-core.jar是Apache Log4j的核心日志包之一,它提供了日志记录的核心功能,可以帮助开发人员在应用程序中实现灵活、高效的日志记录。以下是log4j-core.jar的详细介绍: 1.日志级别:log4j-core.jar支持多种日志...

    log4cplus:log4cplus是一种易于使用的C ++日志记录API,可提供对日志管理和配置的线程安全,灵活且任意粒度的控制。 它是根据Java log4j API建模的

    %log4cplus自述文件简短的介绍是一种易于使用的C ++ 17日志记录API,可提供线程安全,灵活且任意粒度的日志管理和配置控制。 它是根据Java log4j API建模的。最新项目信息可在 SourceForge项目页面或SourceForge上...

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...

    C#关于log4net(Log For Net)的使用

    log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站....用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。

    C#关于log4net(Log For Net)的使用说明

    log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For ...用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。

    snmp4j_source

    此资源为snmp4j的源码 SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试

    snmp4j_api

    此资源为snmp4j的api SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试

    2.0—4.5版本的log4net.dll文件.rar

    log4net是Apache开源的应用于.Net框架的日志记录工具用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。 在C#中的具体应用可以参考...

    snmp4j_jar

    SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。 SNMP4J是一个商业类库,... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试

    log4cplus:C ++日志记录框架-开源

    log4cplus是一种易于使用的C ++日志记录API,可提供对日志管理和配置的线程安全,灵活且任意粒度的控制。 它是根据Java log4j API建模的。

    Java毕业设计-Java多线程与线程安全实践-基于Http协议的断点续传.rar

    5. 日志记录:项目使用了日志框架(如Log4j)来记录下载过程中的关键信息,便于分析和调试。 项目可以作为学习Java多线程编程、线程安全和Http协议的实践资源。对于有兴趣深入学习这些技术的读者来说,这是一个很好...

    log4cpp_vs2010

    可以在vs2010编译并运行的log4cpp代码 经测试,支持多线程及跨平台使用

    java版ss源码-log4j-systemd-journal-appender:用于维护结构化日志数据的systemd-journal的Lo

    Log4j 2.x 一起使用 将以下 Maven 依赖项添加到您的项目中: < dependency > < groupId >de.bwaldvogel</ groupId > < artifactId >log4j-systemd-journal-appender</ artifactId > < version ...

    log4cplus is a simple to use C++20 logging API

    log4cplus是一个易于使用的C++20日志记录API,它提供了线程——对日志管理和配置进行安全、灵活和任意粒度的控制。它是根据Java log4j API建模的。本资源提供了在Win10上已编译好的库,并附带使用案例。

    Swing+socket多线程示例(适合设备中间件协议通讯)

    2、配置均使用properties文件,日志记录使用log4j。 3、处理线程,与发送webservice数据所用线程,均使用单例模式,使用队列处理数据。 4、如果有问题可咨询565599455,但不要让我直接给源码哦,毕竟我也是为了...

    Java NIO+多线程实现聊天室

    log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 在线用户记录 批量下载豆瓣电影的图片,并打成压缩包传输给客户端 客户端使用方式: 登录:默认用户名是user1-user5...

Global site tag (gtag.js) - Google Analytics