Log4j不记录到文件,仅记录到控制台

时间:2018-10-09 20:17:12

标签: java logging log4j

我目前正在将log4j-api-2.11.1log4j-core-2.11.1用于Gradle Java项目(jar中都包含build.gradle文件)。我一直在尝试创建包装Java日志记录类,以便可以选择记录到consolefilesyslog。 以下是我的log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, stdout, file, syslog

##### ALL outputs currently set to be a ConsoleAppender
log4j.appender.stdout=org.apache.logging.log4j.core.appender.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p %c %x - %m%n
log4j.appender.studout.threshold=warn

##### File appender definition ######
log4j.appender.file=org.apache.logging.log4j.core.appender.RollingFileAppender
log4j.appender.file.File=article_storage.log
log4j.appender.file.Append=true
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
log4j.appender.file.threshold=error

##### Syslog configuration #####
log4j.appender.syslog=org.apache.logging.log4j.core.appender.SyslogAppender
log4j.appender.Syslog.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t]
log4j.appender.syslog.syslogHost=localhost
log4j.appender.syslog.facility=LOCAL3
log4j.appender.syslog.threshold=debug

我尝试将此文件存储在资源文件夹下,以及设置log4j配置文件的vm选项。但是,尽管如此,记录器仅输出到控制台,甚至没有创建文件。请注意,我的logger = LogManager.getLogger("file");似乎只会将文件追加到输出中。

有两件事,似乎无法读取log4j属性文件,即使读取了该文件,我也可能无法正确执行操作。

以下是其他文件:

Log.java:

package storage.util;
import org.apache.logging.log4j.*;

public class Log {
    private String _ident;
    private  Logger logger;

    public Log(String ident) {
        this(ident, LogType.SYSLOG);
    }

    public Log(String ident, LogType type) {

        this._ident = ident;
        logger = LogManager.getLogger("file");


    }

    public void info(String message) {
        logger.info("[INFO]" + "[" + _ident + "] " + message);
    }

    public void debug(String message) {
        logger.debug("[DEBUG]" + "[" + _ident + "] " + message);
    }

    public void warn(String message) {
        logger.warn("[WARNING]" + "[" + _ident + "] " + message);
    }

    public void error(String message) {
        logger.warn("[ERROR]" + "[" + _ident + "] " + message);
    }

    enum LogType {CONSOLE, FILE, SYSLOG}

}

TestLog.java:

package storage.util;

public class TestLog {

    public static void main(String args[]) {
        Log.LogType logType = Log.LogType.FILE;
        Log log = new Log("TestLog", logType);

        log.debug("This is a debug");

    }


}

0 个答案:

没有答案