log4j 一个线程记录一个日志如何配置?
现有一后台java程序,分四个线程去运行,想通过log4j 一个线程记录一个日志,如何搞? 求高人指教,谢谢!
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 次
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;
}
}
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可以做到分级分线程记录日志,希望也可以给大家一些启示。
相关推荐
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息...
Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...
日志是异步记录的(每个记录方式开了个线程在后台负责记录处理),大大提高应用程序性能 // 8. 功能可以通过数据库表选择配置(如,多少种记录方式,各线程工作频率) // 9. 日志的数据库记录方式,可以配置缓区大小,...
在Tomcat6下使用Log4j记录日志,天创建新日志文件时(日志文件设置为:org.apache.log4j.DailyRollingFileAppender)报: log4j:ERROR Failed to rename错误; 网上查找了下原因,大概意思是日志文件始终被占有,所以...
log4j-core.jar是Apache Log4j的核心日志包之一,它提供了日志记录的核心功能,可以帮助开发人员在应用程序中实现灵活、高效的日志记录。以下是log4j-core.jar的详细介绍: 1.日志级别:log4j-core.jar支持多种日志...
%log4cplus自述文件简短的介绍是一种易于使用的C ++ 17日志记录API,可提供线程安全,灵活且任意粒度的日志管理和配置控制。 它是根据Java log4j API建模的。最新项目信息可在 SourceForge项目页面或SourceForge上...
log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...
log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站....用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。
log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For ...用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。
此资源为snmp4j的源码 SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试
此资源为snmp4j的api SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试
log4net是Apache开源的应用于.Net框架的日志记录工具用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。 在C#中的具体应用可以参考...
SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。 SNMP4J是一个商业类库,... 使用LOG4J记录日志。 11. 使用GETBULK实现Row-based矩阵的有效的异步表格获取。 12. 支持多线程。 13. JUNIT测试
log4cplus是一种易于使用的C ++日志记录API,可提供对日志管理和配置的线程安全,灵活且任意粒度的控制。 它是根据Java log4j API建模的。
5. 日志记录:项目使用了日志框架(如Log4j)来记录下载过程中的关键信息,便于分析和调试。 项目可以作为学习Java多线程编程、线程安全和Http协议的实践资源。对于有兴趣深入学习这些技术的读者来说,这是一个很好...
可以在vs2010编译并运行的log4cpp代码 经测试,支持多线程及跨平台使用
Log4j 2.x 一起使用 将以下 Maven 依赖项添加到您的项目中: < dependency > < groupId >de.bwaldvogel</ groupId > < artifactId >log4j-systemd-journal-appender</ artifactId > < version ...
log4cplus是一个易于使用的C++20日志记录API,它提供了线程——对日志管理和配置进行安全、灵活和任意粒度的控制。它是根据Java log4j API建模的。本资源提供了在Win10上已编译好的库,并附带使用案例。
2、配置均使用properties文件,日志记录使用log4j。 3、处理线程,与发送webservice数据所用线程,均使用单例模式,使用队列处理数据。 4、如果有问题可咨询565599455,但不要让我直接给源码哦,毕竟我也是为了...
log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 在线用户记录 批量下载豆瓣电影的图片,并打成压缩包传输给客户端 客户端使用方式: 登录:默认用户名是user1-user5...