如何根据日期获取log4j的日志文件名?

东方冉 2007-08-23 02:59:43
log4j配置如下:
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=${myApp.root}/WEB-INF/myApp.log
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd

要求根据日期获取日志文件内容,比如输入"2007-8-23",就将myApp.log.2003-08-23的内容显示出来。

已经写好了读取日志方法。
private void showLogs(String logFileName){

//从指定文件读取日志内容,已完成。

}

现在需要根据日期来获取文件名。
public String getLogFileName(String curDate) {

String fileName = "";
//中间这部分怎么写?
return fileName;
}

新接触java,对些基础的还可以对付,对log4j实在不熟,希望大家帮忙。






...全文
854 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoche2008 2010-07-08
  • 打赏
  • 举报
回复
package dcs.log;

import java.io.File;

import org.apache.log4j.Appender;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Logger;

public class DcsLog {
// protected transient Log logger = LogFactory.getLog(getClass());
protected transient Logger logger = Logger.getLogger(getClass());
private static DcsLog instance;
private static final String FILE_APPENDER_ID = "R";

private DcsLog() {
}

public synchronized static DcsLog getInstance() {
if (instance == null) {
instance = new DcsLog();
}
return instance;
}

public Appender getFileAppender() {
DailyRollingFileAppender appender = (DailyRollingFileAppender) Logger
.getRootLogger().getAppender(FILE_APPENDER_ID);
return appender;
}

public File getFile() {
return new File(((DailyRollingFileAppender) getFileAppender())
.getFile());
}

public static void main(String[] args) {
DcsLog o = DcsLog.getInstance();
System.out.println(o.getFile().getName());
System.out.println(o.getFile().getAbsolutePath());
}

}
jk88811 2007-08-24
  • 打赏
  • 举报
回复
不知道FileAppender的getFile方法可不可行?

另外也可能需要从Configurator入手,从config包里面找找吧
东方冉 2007-08-24
  • 打赏
  • 举报
回复
难道log4j只能存,不能取??
xxdjnl 2007-08-24
  • 打赏
  • 举报
回复
log4j常用来打印和存储日志文件的
东方冉 2007-08-24
  • 打赏
  • 举报
回复
ohuan(orckerth) 你给的地址貌似只有写日志,这种网上很多啊,我需要的是读取的例子。
ohuan 2007-08-23
  • 打赏
  • 举报
回复
org.apache.log4j 用法:

http://hbohuan.blog.163.com/blog/static/2084898200722704510356/
yangxccom 2007-08-23
  • 打赏
  • 举报
回复
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
fileName=sdf.format(sdf.parse(curDate));
} catch (ParseException e1) {
e1.printStackTrace();
}
东方冉 2007-08-23
  • 打赏
  • 举报
回复
我就是想知道log4j提供了什么接口可以从配置文件中获取日志文件名啊。
jk88811 2007-08-23
  • 打赏
  • 举报
回复
你是要在更改了log4j的配置以后, 还可以正确地根据日期找到日志文件吗?

如果是这样,那要看log4j有没有提供相应的接口, 或者根据log4j来实现自己的\

否则根据不变的配置, 你已经知道文件名是什么样子, getLogFileName就相当好写了...

62,615

社区成员

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

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