http://www.shanhh.com/?p=33 动态
http://shuaigg-babysky.iteye.com/blog/543999 静态
Log4J 在系统运行时更改log4j的配置
http://blog.sina.com.cn/s/blog_4b81125f0100fo95.htmlhaiyao
摘要:
但是我们还不能确定log4j系统正在运行时,再次调用configure(String configFilename)方法,会不会对系统运行的产生其他的影响?当查看log4j源码后这个问题被解决了。因为 PropertyConfigurator的 configureAndWatch(String configFileName, long delay)方法就是启动一个线程并在这个线程中反复的实例化一个PropertyConfigurator对象,并调用他的 doConfigure(String configFileName, LoggerRepository hierarchy)方法,而PropertyConfigurator对象的configure(String configFilename)也是实例化一个PropertyConfigurator对象,并调用他的doConfigure(String configFileName, LoggerRepository hierarchy)方法。所以可以确定在log4j运行时调用configure(String configFilename)方法是不会对系统造成什么不良影响的,除非log4j本身就存在问题。
多线程环境下使用log4j输出各线程的标识,区分各线程输出的内容
http://blog.csdn.net/benq998/article/details/4033334
log4j输出多个自定义日志文件,动态配置路径
http://blog.csdn.net/wiwipetter/article/details/4390579
http://shuaigg-babysky.iteye.com/blog/543999 静态
Log4J 在系统运行时更改log4j的配置
http://blog.sina.com.cn/s/blog_4b81125f0100fo95.htmlhaiyao
摘要:
但是我们还不能确定log4j系统正在运行时,再次调用configure(String configFilename)方法,会不会对系统运行的产生其他的影响?当查看log4j源码后这个问题被解决了。因为 PropertyConfigurator的 configureAndWatch(String configFileName, long delay)方法就是启动一个线程并在这个线程中反复的实例化一个PropertyConfigurator对象,并调用他的 doConfigure(String configFileName, LoggerRepository hierarchy)方法,而PropertyConfigurator对象的configure(String configFilename)也是实例化一个PropertyConfigurator对象,并调用他的doConfigure(String configFileName, LoggerRepository hierarchy)方法。所以可以确定在log4j运行时调用configure(String configFilename)方法是不会对系统造成什么不良影响的,除非log4j本身就存在问题。
多线程环境下使用log4j输出各线程的标识,区分各线程输出的内容
http://blog.csdn.net/benq998/article/details/4033334
log4j输出多个自定义日志文件,动态配置路径
http://blog.csdn.net/wiwipetter/article/details/4390579