Log4j не входит в файл, только в консоль - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время я использую log4j-api-2.11.1 и log4j-core-2.11.1 для проекта Gradle Java (оба являются jar файлами, включенными в build.gradle).Я пытался создать класс ведения журнала Java-оболочки, чтобы иметь возможность записи в console, file или syslog.Ниже мой 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

Я пытался сохранить этот файл в папке ресурсов, а также установить параметры vm в файле конфигурации log4j.Однако, несмотря на это, регистратор только выводит данные на консоль, а файл даже не создается.Обратите внимание, что мой 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");

    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...