log4j приложение по классу - PullRequest
1 голос
/ 09 марта 2012

Я написал приложение log4j, которое будет принимать сообщения определенного типа и выводить их в кластер MongoDB.Давайте назовем это «Аудит»

Я хочу иметь возможность сделать что-то вроде этого:

logger.debug (new AuditEntry (...));

из ЛЮБОГО класса и иметь log4j автоматически направлять любые сообщения журнала типа "AuditEntry" на мойАудит заявителя.Это возможно?Единственный способ, которым я смог сделать это до сих пор, это добавить его в цепочку rootLogger:

log4j.rootLogger=DEBUG, Console, Audit

Но, конечно, AuditEntry также является toString () и выводится на консоль.- Я хотел бы избежать этого, если это возможно.

Я подумал об одном решении, но я не уверен, что это лучшее решение.Сделайте фильтр Audit первым в цепочке:

log4j.rootLogger=DEBUG, Audit, Console

, а затем внутри моего приложения log4j вызовите "clearFilterChain ()". Я еще не пробовал это ... и я не нашел никакой документации по этой функции,

Есть ли другие решения?

...