Настройка ведения журнала с помощью Spring mvc, хочу ограничить трассировку / отладку только моим кодом - PullRequest
0 голосов
/ 28 ноября 2011

Я наконец-то установил log4j с помощью Spring mvc, мои свойства log4j выглядят так:

# Direct log messages to stdout
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{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=trace, stdout

Теперь я не хочу видеть никаких выводов, кроме как из моего собственного кода, есть ли способ ограничить всерегистрировать сообщения в определенном пространстве имен?

Когда я иду в производство, я не хочу, чтобы какая-либо информация трассировки / отладки регистрировалась, я предполагаю, что мне нужно создать файловый appender, но как мне ограничить сообщения журнала?только жесткие сообщения типа журнала, такие как try / catch или что-то неожиданное?

1 Ответ

3 голосов
/ 28 ноября 2011

Например (с использованием ConsoleAppeneder, но с той же разницей):

log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.logger.your.package.to.debug=DEBUG
log4j.logger.org.springframework.aop=DEBUG

По умолчанию протокол регистрируется на уровне INFO, за исключением пакетов your.package.to.debug и spring-aop, зарегистрированных на уровне DEBUG. Смешивать и сочетать уровни и пакеты, однако требуется.

Я бы опасался не запускать INFO в производство, если вам не нужно ничего отлаживать, хотя - особенно во время запуска, INFO действительно важно. Его также можно использовать для предоставления общей информации о системе.

Кроме того, шаблон %L довольно медленный. Штраф за редкий WARNING / и т. Д. журналы, не так много для нормального ведения журнала.

...