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实在不熟,希望大家帮忙。

解决方案 »

  1.   

    你是要在更改了log4j的配置以后, 还可以正确地根据日期找到日志文件吗?如果是这样,那要看log4j有没有提供相应的接口, 或者根据log4j来实现自己的\否则根据不变的配置, 你已经知道文件名是什么样子, getLogFileName就相当好写了...
      

  2.   

    我就是想知道log4j提供了什么接口可以从配置文件中获取日志文件名啊。
      

  3.   

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    try {
    fileName=sdf.format(sdf.parse(curDate));
    } catch (ParseException e1) {
    e1.printStackTrace();
    }
      

  4.   

    org.apache.log4j 用法:http://hbohuan.blog.163.com/blog/static/2084898200722704510356/
      

  5.   

    ohuan(orckerth) 你给的地址貌似只有写日志,这种网上很多啊,我需要的是读取的例子。
      

  6.   

    log4j常用来打印和存储日志文件的
      

  7.   

    难道log4j只能存,不能取??
      

  8.   

    不知道FileAppender的getFile方法可不可行?另外也可能需要从Configurator入手,从config包里面找找吧
      

  9.   

    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());
    }}