JavaApacheL4J-只有在运行时才知道记录到文件

JavaApacheL4J-只有在运行时才知道记录到文件,java,log4j,Java,Log4j,有没有一个简单的方法来实现我在主题中所描述的 我知道,通常情况下,l4j.properties包含有关文件的信息,我们在其中存储信息。问题是在运行时会有文件,所以我需要以某种动态方式设置文件并向其添加新日志 有什么想法吗?你可以这样做: String logFile = ...// log4j.xml absolute path DOMConfigurator.configure(logFile); Logger log = Logger.getRootLogger()

有没有一个简单的方法来实现我在主题中所描述的

我知道,通常情况下,l4j.properties包含有关文件的信息,我们在其中存储信息。问题是在运行时会有文件,所以我需要以某种动态方式设置文件并向其添加新日志


有什么想法吗?

你可以这样做:

    String logFile = ...// log4j.xml absolute path
    DOMConfigurator.configure(logFile);

    Logger log = Logger.getRootLogger();
    String fileAppenderName = ...
    FileAppender fa = (FileAppender)log.getAppender(fileAppenderName);
    fa.setFile(yourLogFile)

没有收到您的问题我想使用ApacheLog4j将一些信息记录到文件中。通常你只是在l4j.properties中设置文件,但是在运行之前我不知道文件名。这就是为什么我无法设置它的属性文件,我正在寻找解决方案。fileAppenderName呢?我假设您仍然有一个log4j.xml或log4j.properties文件,在其中配置所有Appender,并且您只想更改日志在执行时放置的文件。因此,如果您使用的是log4j.xml文件,那么appender名称将是您在appender配置中输入的任何名称。例如:。。。