Java Logger с сервлетами - PullRequest
       9

Java Logger с сервлетами

1 голос
/ 09 апреля 2010

Я использую класс-оболочку A, которая инициализирует java.util.logger

static class A {

    public static Logger logger;

    public static void init(){

    logger = Logger.getLogger("test");

}

Теперь везде в моей программе я вызываю A.init (), а затем logger.log ("Message + uniqid"). Но недавно я перешел на HTTP-сервлеты, и у меня возникли проблемы.

В основном, если приложение уже запущено, и регистратор ведет журнал ... и кто-то еще запускает приложение снова, регистратор из предыдущего экземпляра останавливается и начинает регистрацию для второго. Может у кого-нибудь есть решение, как мне решить проблему статической переменной?

Я могу передать регистратор во все классы конструктора, но это действительно утомительно. Любое лучшее решение будет оценено.

Ответы [ 3 ]

2 голосов
/ 09 апреля 2010

Вам не нужно инициализировать ваш регистратор несколько раз.

На самом деле вам даже не нужно делать это вручную, потому что вы можете создать файл свойств с информацией о конфигурации и поместить его в определенный каталог так, как этот файл будет развернут в папку WEB-INF/classes в вашем приложении. сервер.

В файле конфигурации (properties-file) вы можете определить различные способы записи логов. Затем, когда вы хотите записать журнал из какого-нибудь сервлета, например UserCounterServlet, вы должны сделать:

private static final Logger logger = Logger.getLogger (UserCounterServlet.class);
...
logger.info("some info");
0 голосов
/ 09 апреля 2010

Если вы хотите действительно хорошее решение для ведения журналов в сервлетах, не используйте статический регистратор (даже если вы знаете о некоторых известных проектах на основе сервлетов, используйте этот способ ведения журнала). Используйте правильное решение для ведения журнала, разработанное с учетом веб-приложения (например, LogBack - продвижение log4j и т. Д.)

0 голосов
/ 09 апреля 2010

Да, никогда не используйте static в веб-приложении, и то, что пользователь user177883 сказал, использует log4j, это хорошее решение для ведения журнала, поэтому зачем писать его с нуля

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