配置log4j记录到自定义文件在运行时(configure log4j to log to cust

2019-06-18 20:14发布

任何人都可以请指导我,我怎么可以配置log4j记录到,我在运行time.The名称和日志文件在运行时产生和应用程序必须登录到特定的文件路径指定一个特定的文件。

一般文件在log4j.properties文件指向将由application.However在这种情况下,我想读通过命令行的日志文件路径和登录到特定的文件中使用的日志文件附加器条目。

我怎样才能做到这一点?

Answer 1:

从log4j文档改编:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.FileAppender;

public class SimpandFile {
   static Logger logger = Logger.getLogger(SimpandFile.class);
   public static void main(String args[]) {

      // setting up a FileAppender dynamically...
      SimpleLayout layout = new SimpleLayout();    
      FileAppender appender = new FileAppender(layout,"your filename",false);    
      logger.addAppender(appender);

      logger.setLevel((Level) Level.DEBUG);

      logger.debug("Here is some DEBUG");
      logger.info("Here is some INFO");
      logger.warn("Here is some WARN");
      logger.error("Here is some ERROR");
      logger.fatal("Here is some FATAL");
   }
}


Answer 2:

您也可以从log4j.properties文件做到这一点。 用下面我已经添加了系统属性$ {} logfile.name示例文件:

# logfile is set to be a RollingFileAppender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${logfile.name}
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{yyyyMMdd@HH\:mm\:ss,SSS}\:%c - %m%n

然后,日志文件名可以设置两种不同的方式:

  1. 作为一个命令行,系统属性传递到Java“-Dlogfile.name = {}日志文件”
  2. 在直接通过设置系统属性Java程序(之前您对log4j的任何电话)。

    System.setProperty( “logfile.name”, “一些路径/日志文件名字符串”);



Answer 3:

可以通过这个属性来也做了定义log4j.properties文件

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.maxFileSize=5000KB
log4j.appender.logfile.maxBackupIndex=5
log4j.appender.logfile.File=/WebSphere/AppServer/profiles/Custom01/error.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %C %M %c{1}:%L - %m%n


Answer 4:

工作,同样已经过测试

// setting up a FileAppender dynamically...
SimpleLayout layout = new SimpleLayout(); 
RollingFileAppender appender = new RollingFileAppender(layout,"file-name_with_location",true);
                    appender.setMaxFileSize("20MB");
                    logger.addAppender(appender);


文章来源: configure log4j to log to custom file at runtime
标签: java log4j