Я намагаюся використовувати SLF4J (з log4j
прив’язкою) вперше.
Я хотів би налаштувати 3 різних іменованих реєстраторів, які можуть бути повернуті LoggerFactory, які будуть реєструвати різні рівні та надсилати повідомлення до різних додатків:
- Logger 1 "FileLogger" записує журнал DEBUG і додає до
DailyRollingFileAppender
- Журнал 2 "TracingLogger" записує журнал TRACE + та додає до
JmsAppender
- Журнал 3 "ErrorLogger" реєструє ERROR + та додає до іншого
JmsAppender
Крім того, я хочу, щоб вони були налаштовані програмно (на Java, на відміну від XML або log4j.properties
файлу).
Я думаю, що, як правило, я б визначав їх Logger
десь у якомусь завантажувальному коді, як init()
метод. Однак, оскільки я хочу використовувати slf4j-log4j
, я плутаюсь щодо того, де я міг би визначити реєстратори та зробити їх доступними для classpath.
Я не вірю, що це порушення основної мети SLF4J (як фасаду), оскільки мій код, що використовує API SLF4J, ніколи не дізнається, що ці реєстратори існують. Мій код просто робить звичайні дзвінки до API SLF4J, який потім пересилає їх до Log4j Loggers, який він знаходить на classpath.
Але як я конфігурую ці Log4j Loggers на classpath ... на Java ?!