Изменение пути журнала на лету - PullRequest
0 голосов
/ 28 сентября 2011

Я использую log4j для регистрации действий в моем приложении. Я хочу взять путь журнала из базы данных.Теперь мне нужно настроить мои свойства log4j динамически.

можем ли мы сделать это на лету, изменим путь регистрации log4h ..

Пожалуйста, предложите.

Спасибо

Ответы [ 3 ]

2 голосов
/ 28 сентября 2011

Вы должны создать класс, который загружается при запуске, и настроить log4j. Вот код, который я использовал в проекте JavaEE, который загружает файл конфигурации из внешнего каталога:

public class InitListener implements ServletContextListener {

public InitListener() {
}

public void contextInitialized(ServletContextEvent sce) {
    try {
        File    file  = null;
        file = new File(System.getProperty("catalina.base") + "/conf/query-log4j.xml");
        DOMConfigurator.configure(file.toURL());
        System.out.println("Log4J successfully configured!");
    } catch(Exception e) {
        System.out.println("There was an error when initialize the Log4J config!");
        e.printStackTrace();
        throw new RuntimeException(e);
    }
}

public void contextDestroyed(ServletContextEvent sce) {
}

}

1 голос
/ 28 сентября 2011

Если вы используете MentaLog , все, что вам нужно сделать, это:

yourLogger.setFilename("newfilenamehere.log");

Ваш журнал будет автоматически повторно открыт с новым именем. По моему личному мнению, программная конфигурация - это способ перехода через XML и / или аннотации. Это обеспечивает непревзойденную гибкость и простоту использования.

0 голосов
/ 28 сентября 2011

Создание отдельного файла свойств для хранения Определенная среда Пример связанных настроек:

**uatLog4j.properties**
#######################
UAT Settings
#######################

{Add your Settings here}

И еще одна для производственной среды.

**productionLog4j.properties**
########################
PRODUCTION settings
########################

{Add your Settings here}

И затем, используя, скажем, IP-адрес или имя сервера , чтобы определить развернутую платформу, передайте путь от базы данных к требуемому файлу свойств среды, как требуется.

В качестве альтернативы вы можете использовать LogManager для получения экземпляров Logger или для работы с текущим LoggerRepository. См. Javadoc и RepositorySelecter пример.

Примечание: Вы можете добиться того же, используя XML.

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