How to set log4j property file?

前端 未结 3 515

I have an Eclipse Java Project which uses log4j. I can\'t set the log4j configuration file to be accessed by file path. I have to export and run the project in a jar.

He

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-02-13 03:57

    All these above answer didn't satisfy so I post here for someone who might needs this in the future:

    1. You need to specify where your property is. Either by program or command option is fine.

    Programatically:

    private static void setupLog4J(){
        try {
            System.setProperty("log4j.configuration", new File(".", File.separatorChar+"log4j.properties").toURL().toString());
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    1. Create your own log4j.properties file:

    #  Logging level
    # Root logger option
    log4j.rootLogger=DEBUG, stdout, file
    
    # Redirect log messages to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p     %c{1}:%L - %m%n
    
    # Redirect log messages to a log file, support file rolling.
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=c:/project/resources/t-output/log4j-application.log
    log4j.appender.file.MaxFileSize=5MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    Hope this helps.

提交回复
热议问题