如题:意思就是我需要在程序中出力log。
但目前出现一个问题,就是我要求的log文件名是可以在程序中设置的。。
比如:
A时刻。我要程序输出的log文件名是A.LOG
在B时刻,系统判断满足一定条件后,我要将log输出 到test.log的文件(意思就是我可以在程序中不定时指定文件名)
在此期间,程序是一直运行的,请问这个怎么实现?能实现吗?。。
暂发100.实现了再追加,谢谢各位。
------解决方案--------------------
不会,帮顶!
------解决方案--------------------
mark
------解决方案--------------------
因为log4j是个properties文件,你可以用ResourceBundle这个类获取这个文件的句柄,然后
再通过log4j.appender.FILE.File这个key值去修改具体存放log日志的路径.
log4j.appender.FILE.File=c:/file.log
------解决方案--------------------
你可以通过读取log4j的日志文件
然后将log4j.appender.FILE.File句柄的值进行动态的改变就好了
------解决方案--------------------
学习,学习,有空了些个程序试试看
------解决方案--------------------
看下我们项目部配的这个 log4j.conf
- XML code
log4j.rootLogger=INFO,A1 //日志生成级别log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender //控制台log4j.appender.A1.file=log_console_out //文件名log4j.appender.A1.DatePattern='.'yyyy-MM-dd //日志文件改名(重名就改)(比如今天21号,日志为log_console_out,那么明天就变成log_console_out.2009-01-21 )log4j.appender.A1.layout=org.apache.log4j.PatternLayout //日志格式log4j.appender.A1.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] -=> %m%n //也是定义格式的转换log4j.logger.normalout=debug,A2log4j.appender.A2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A2.file=log_normal_outlog4j.appender.A2.DatePattern='.'yyyy-MM-ddlog4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] -=> %m%nlog4j.logger.debugout=debug,A4log4j.appender.A4=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A4.file=log_debug_outlog4j.appender.A4.DatePattern='.'yyyy-MM-ddlog4j.appender.A4.layout=org.apache.log4j.PatternLayoutlog4j.appender.A4.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] -=> %m%nlog4j.logger.errorout=debug,A6log4j.appender.A6=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A6.file=log_error_outlog4j.appender.A6.DatePattern='.'yyyy-MM-ddlog4j.appender.A6.layout=org.apache.log4j.PatternLayoutlog4j.appender.A6.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] Method:%l %n-=> %m%nlog4j.logger.infoout=debug,A8log4j.appender.A8=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A8.file=log_info_outlog4j.appender.A8.DatePattern='.'yyyy-MM-ddlog4j.appender.A8.layout=org.apache.log4j.PatternLayoutlog4j.appender.A8.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] -=> %m%niboss.log4j.logfile.path=F:\plat\webapp\intf_ibss\log //log日志地址
------解决方案--------------------
不会,up
------解决方案--------------------
一般只用循环日志,保存5份
------解决方案--------------------
up
------解决方案--------------------
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Log4jTest {
private static final Log logger = LogFactory.getLog(Log4jTest.class);
public static void main(String[] args) {
org.apache.log4j.PropertyConfigurator.configure("src/log4j2.properties");
logger.info("xxxxxxx");
}
}
刚试过,可用.
log4j2.properties放在src下面
------解决方案--------------------