странное поведение логов tomcat (дублирование содержимого в нескольких файлах без расширений) - PullRequest
0 голосов
/ 17 марта 2020

мои журналы tomcat не имеют расширений. Я заметил, что это связано с развернутым веб-приложением (менеджер и хост-менеджер исправны), но я не могу найти неправильную точку. После развертывания веб-приложения появятся следующие данные:

правильно:

  • catalina.out
  • catalina. $ {Yyyy-MM-dd} .log (дата: фактическое, а не заполнитель)
  • localhost. $ {yyyy-MM-dd} .log
  • manager. $ {yyyy-MM-dd} .log

неправильно:

  • каталина.
  • менеджер.
  • localhost.

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

Ниже приведена конфигурация log4j:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<appender name="rollingFile" class="org.apache.log4j.rolling.RollingFileAppender">
    <param name="Threshold" value="debug" />
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="${catalina.base}/logs/my_custom_log.%d{yyyy-MM-dd}.log.gz" />
      <param name="ActiveFileName" value="${catalina.base}/logs/my_custom.log" />
    </rollingPolicy>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" 
          value="%d{dd-MMM-yyyy HH:mm:ss,SSS}|%t|%-35C:%L|%-25M|%-5p|%X{idOperazione} %X{idConversazione} %X{gruppo} %X{istituto} %X{canale} %X{matricola}|%m%n" />
    </layout>
  </appender>

  <!-- Application Loggers -->
  <logger name="COM.CORPORATE.ONE">
    <level value="debug"/>
    <appender-ref ref="rollingFile"/>
  </logger>
  <logger name="IT.CORPORATE.TWO">
    <level value="debug"/>
    <appender-ref ref="rollingFile"/>
  </logger>

  <!-- 3rdparty Loggers -->
  <logger name="org.springframework">
    <level value="warn"/>
  </logger>
  <logger name="org.activiti">
    <level value="warn"/>
  </logger>
  <logger name="org.apache.ibatis">
    <level value="warn"/>
  </logger>
  <logger name="org.apache.commons">
    <level value="warn"/>
  </logger>
  <logger name="com.microsoft">
    <level value="warn"/>
  </logger>
  <logger name="org.hibernate">
    <level value="warn"/>
  </logger>
  <logger name="org.apache.cxf">
    <level value="warn"/>
  </logger>

  <!-- Root Logger -->
  <root>
    <level value="ERROR" />
    <appender-ref ref="rollingFile"/>
  </root>

</log4j:configuration>

конфиг log4j вводится в приложение с помощью следующей весенней директивы:

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
    <property name="targetMethod" value="initLogging" />
    <property name="arguments">
        <list>
            <value>${MY_APPLICATION_ENV_VARIABLE}/${ENV}/log4j_my-custom-application-log4j.xml</value>
    </list>
    </property>
</bean>

$ {MY_APPLICATION_ENV_VARIABLE} и $ {ENV} передаются в tomcat через параметр -D, конечно.

Tomcat - это 8.5.46, работающий в WSL Linux (Debian), но сам каталог tomcat находится в файловой системе Windows, поэтому Debian обнаружил его в / mnt / c / BLABLABLA и его разрешениях все 777. Я думаю, что эта комбинация не ответственна за это неправильное поведение, но я боролся с этим дерьмом в течение 1 дня (и этого достаточно), поэтому любые указания могут быть полезны.

О, я меня не интересуют какие-либо журналы на catalina.out - у меня были бы журналы tomcat на catalina. $ {date} .log и т. д. и журнал моего приложения my_application_log_according_to_that_log4j_conf. xml

Благодаря все

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