Java论坛网»Java技术»问个关于动态改变log4j的log文件的问题

问个关于动态改变log4j的log文件的问题

问?:
我想在程序里动态的改变log的输出文件。
请高手赐教,谢谢。
答!: 1:
你用FileInputStream跟FileOutputStream就可以对TXT文件进行读写了。
答!: 2:
客户要求用log4j啊。
这个系统本身就是用log4j的,我的这个部分也要原先的那个log4j的配置,但是文件名是要变的。根据传进来的文件名来写log。
答!: 3:
没人知道吗?
答!: 4:
可以在程序中设置log4j的Appender组件。
log4j.properties中log4j.appender.R.File=(文件名)用来设置,
具体如何设置,找篇关于log4j的文章看看就知道了。
我也没用过。
答!: 5:
自己顶一下。
答!: 6:
org.apache.log4j.DailyRollingFileAppender
DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
1)'.'yyyy-MM: 每月
2)'.'yyyy-ww: 每周
3)'.'yyyy-MM-dd: 每天
4)'.'yyyy-MM-dd-a: 每天两次
5)'.'yyyy-MM-dd-HH: 每小时
6)'.'yyyy-MM-dd-HH-mm: 每分钟
答!: 7:
客户要求用log4j啊。
这个系统本身就是用log4j的,我的这个部分也要原先的那个log4j的配置,但是文件名是要变的。根据传进来的文件名来写log。

----------------------------------------------------------------------------
LOG4J支持多个Appender的~ ^_^
答!: 8:
呵呵 准备下班太着急 每看清楚楼主的问题~
上面我的帖子楼主可以54了 ~
------------------------------------------

对动态的改变log文件 楼主可以试试用自定义logj配置文件的方法试试~
不过Logger 销毁不了~ 不知道可以不
答!: 9:
继续顶
答!: 10:
还是没有解决啊
答!: 11:
顶!顶!顶!顶!
答!: 12:
log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。

java写properties文件的方法
http://www.blogjava.net/jam/archive/2005/08/02/9033.aspx

在web程序中使用log4j注意问题 1、 由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(string)语句。例: //得到当前jsp路径 String prefix = getServletContext().getRealPath("/"); //读取log4j.properties PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties"); 2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。
答!: 13:
不是要修改properties!
答!: 14:
研究了log4j源代码,自己搞定了。
教大家一招吧。
Appender appender = LogManager.getLoggerRepository().getRootLogger().getAppender("A1");
if ( appender instanceof FileAppender ) {
FileAppender fileAppender = (FileAppender)appender;
fileAppender.setFile("xxxx");
fileAppender.activateOptions();
}
答!: 15:
可不可以自己给自己分阿。我可是自己解决的。

相关JAVA教程:
jdbc连接池的javabean
一个connection 是不是使用次数太多 或者 时间太长 就会坏掉?
关于Hibernet级联更新的问题
向各位高手请教: 如何在JAVA中定义自己的字符集?
同比环比分析报表问题
什么样的JAVA开发工具 适合初学者
在java中能不能动态地接受源代码,再实时一行一行地运行出来?
问个DWR的问题
如何使用java和JSP等实现树型菜单!
能否把jtabbedpane的选项卡放在底下显示
多语言的问题
Not able to obtain connection