Способы настройки журналов, отличных от log4j xml, файла свойств и исходного кода (в основном, Java)? - PullRequest
0 голосов
/ 02 января 2019

Я смотрю на исходный код какого-либо приложения.Он использует Spring Framework, Apache Tiles, JSP, Log4j, java, javascript, jquery, jqplot, Jsch и т. Д.

Я знаю, где создаются журналы.(a / b / logs) Однако, когда я смотрю на исходный код, я не знаю, как создаются журналы под именем папки «logs».Я посмотрел на log4j.xml, web.xml, файлы свойств.Я нашел код для того, как создается путь «a / b», но не журналы.Также эта папка имеет 4 типа журналов.И они называются в виде, подобном access.20181227001, ошибки.20182111.Я хочу знать, где я должен искать, чтобы найти, как журналы создаются таким образом.

Log4J.xml

<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
    </layout>
</appender>

<appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %5p %m%n" />
    </layout>  
</appender> 

<!-- Application Loggers -->
<logger name="com.dsmentoring.chakan" additivity="false">
    <level value="debug" />
    <appender-ref ref="console"/>
</logger>

<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
    <level value="error"/> 
</logger>

<!-- Bean logger -->
<logger name="org.springframework.beans">
    <level value="error"/> 
</logger>

<!-- Context logger -->
<logger name="org.springframework.context">
    <level value="error"/> 
</logger>

<!-- Web logger -->
<logger name="org.springframework.web">
    <level value="error"/> 
</logger>

<logger name="org.springframework.ldap" additivity="true">
    <level value="error"/> 
</logger>
<!-- LDAP logger -->
<logger name="com.unboundid.ldap" additivity="true">
    <level value="error"/> 
</logger>

<!-- Root Logger -->
<root>
    <priority value="off" />
    <appender-ref ref="console" />
</root>

Подвести итог:

1) Есть ли способ настроить, где создаются журналы и как они создаются (4 типа журналов) Кроме log4j.xml, файлов xml и файлов свойств?Я просмотрел весь код java, jsp, js, но не могу найти конфигурацию для журналов.Поэтому я хочу знать, есть ли другие способы сделать это или где я должен искать эти конфигурации.

2) Возможно, папка 'logs' по умолчанию для log4j?

ldap.properties

#LDAP Connection Info
ldap.host=192.168.0.17 
ldap.port=22389 
ldap.userName=cn=directory manager 
ldap.password= 9074B18A0DE2D50C068D37B60BE5DFDE 
ldap.baseDN=o=sso30root 
ldap.defaultLoadSize=1000 
ldap.start=start-ds 
ldap.stop=stop-ds 
ldap.workdir=/home/KB_openDJ     // logs are created under this path
                                 // /home/KB_openDJ/logs 

В других классах Java они используют это.

@Value("${ldap.workdir}")
private String WORK_DIR;

//  I ommited many lines in between

try{
            diskUsage = sigar.getFileSystemUsage(WORK_DIR);
            diskIOInfo.setDiskRead((int)(diskUsage.getDiskReadBytes()));
            diskIOInfo.setDiskWrite((int)(diskUsage.getDiskWriteBytes()));
        }catch(SigarException sigarEx){
            log.debug("Disk Usage info load Error : " + sigarEx.getMessage());
        }

Я использовал функцию «Поиск» в Eclipse много раз.(logs, WORK_DIR и 4 типа имен журналов, и многие другие. Я не могу найти код конфигурации журналирования.: (

Моя версия log4j :

1.2.15

1 Ответ

0 голосов
/ 03 января 2019

Хорошо, похоже, есть решение, которое может вам помочь. Требуется некоторая отладка статического блока инициализации класса org.apache.log4j.LogManager. Этот класс отвечает за загрузку файла конфигурации регистратора. Вот ссылка на документацию, которая подробно описывает процесс инициализации: ссылка .
Вот выдержка из исходного файла LogManager:

String configurationOptionStr = OptionConverter.getSystemProperty(DEFAULT_CONFIGURATION_KEY, null);
String configuratorClassName = OptionConverter.getSystemProperty(CONFIGURATOR_CLASS_KEY, null);

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

Даже если этот подход не поможет, я бы порекомендовал вам изучить список приложений, полученный во время выполнения. Вот поток stackoverflow, который описывает, как это сделать: ссылка .

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