log4j配置每日生成log文件的问题

aimiracle 2009-06-12 09:14:52
配置文件内容如下:
log4j.properties

log4j.rootLogger=debug,file

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=stdout
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n

Log4jServlet.java //改变log文件存放的位置

public class Log4jServlet extends HttpServlet{

public void init(ServletConfig config)throws SewrvletException{
String prefix=config.getServletContext().getRealPath("/");
String file=config.getInitParameter("Log4jServlet");
String filePath=prefix+file;
Properties props = new Properties();
try{
FileInputStream istream=new FileInputStream(filePath);
props.load(istream);
String logFile=prefix+"logs\\"+props.getProperty("logej.appender.file.File");
props.setProperty("logej.appender.file.File",logFile);
PropertyConfigurator.configure(props);
}catch(IOException e){
e.printStackTrace();
}
}
}

web.xml
<servlet>
<servlet-name>Log4jServlet</servlet-name>
<servlet-class>com.servlet.Log4jServlet</servlet-class>
<init-param>
<param-name>Log4jServlet</param-name>
<param-value>WEB-INF/class/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

所有配置如上,运行时出现了一个这样的问题,当日期发生改变时,运行tomcat会提示
log4j:ERROR Failed to rename [e:\tomcat\webapps\abs\logs\stdout] to [e:\tomcat\webapps\abs\logs\stdout_2009-06-11.log].
请问要怎么解决这个问题呀?
...全文
462 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyxl 2009-06-13
  • 打赏
  • 举报
回复
是java 项目还是web项目.

不同的项目最好是用不同的配置文件.

4楼的配置是可以在java项目里面实现的.

logger<对象>.debug("错误描述");


logger.info(e.message); //打印错误信息到日志文件里面
min123456520 2009-06-12
  • 打赏
  • 举报
回复
不是输出文件,只在控制台打印,就没问题了啊
aimiracle 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 laorer 的回复:]
在相应的目录下面有没有 stdout文件?

你看这样可不可以, 先在程序中关闭 log4j 的输出,再改文件名,再开启 log4j
或者,你直接 copy原来的文件到新的目录下....
[/Quote]

请问怎么关闭 log4j 的输出呀?
直接 copy原来的文件到新的目录下,那不是每天都得手动的去复制呀?
aimiracle 2009-06-12
  • 打赏
  • 举报
回复
to SBtoSB:

你这个调试过的吗?我试也,也不能哦
aimiracle 2009-06-12
  • 打赏
  • 举报
回复
to foolishdault:

你这种方法也不行哦
SBtoSB 2009-06-12
  • 打赏
  • 举报
回复
参考:
log4j.appender.loginLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.loginLog.File=stdout.log
log4j.appender.loginLog.File.DatePattern='.'yyyy-MM-dd
log4j.appender.loginLog.layout=org.apache.log4j.PatternLayout
log4j.appender.loginLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
铁匠梁 2009-06-12
  • 打赏
  • 举报
回复

log4j.rootCategory=DEBUG, CONSOLE, FILE

### A bootstrap file appender

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} USERID %-5p [%c{1}] %m%n

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=stdout
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} USERID %-5p [%c] %m%n
laorer 2009-06-12
  • 打赏
  • 举报
回复
在相应的目录下面有没有 stdout文件?

你看这样可不可以, 先在程序中关闭 log4j 的输出,再改文件名,再开启 log4j
或者,你直接 copy原来的文件到新的目录下....
weiluo12 2009-06-12
  • 打赏
  • 举报
回复
关注!
aimiracle 2009-06-12
  • 打赏
  • 举报
回复
我是使用的tomcat6.0 log4j-1.2.15.jar
fsn011362 2009-06-12
  • 打赏
  • 举报
回复
路过!
laorer 2009-06-12
  • 打赏
  • 举报
回复
直接 copy原来的文件到新的目录下,那不是每天都得手动的去复制呀?

通过程序去 copy 啊 ...

.....
通过编程实现log4j配置动态生效。很简单通过jsp实现的。

http://wmj2003.javaeye.com/blog/379483

看下这个对你有没有帮助,声明,我没有仔细看

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧