PROBLEMA Configurare Log4j2 in una web application

Pubblicità

Tommolo91

Nuovo Utente
Messaggi
109
Reazioni
5
Punteggio
38
Ciao a tutti!

Ho finito di scrivere il codice della mia SpringBoot app basata su una repository Gradle tramite l'ide intellij.

Ho deciso quindi di tirare su un tomcat8 su un determinato server aziendale , di creare il contesto di continuous integration tramite jenkins e di provare l'app nel nuovo ambiente di test.

Sto riscontrando diversi problemi a far funzionare log4j2, logging framework che nelle prove in locale funzionava benissimo.

Il problema e' il seguente:
log4j2 viene importato correttamente e sembra che riesca pure a trovare la posizione del relativo file log4j2.xml di configurazione dove sono situati gli appender che direzionano ai file ove scrivere i logs.

Quando lancio l'applicazione sul tomcat, tutto funziona correttamente , e nella relativa cartella logs vengono pure creati i file.

Il problema e' che da quel momento in poi sembra che log4j2 non scriva mai i messaggi di log nei files, cosa che in locale funzionava benissimo.

Questa e' la struttura del progetto prima di essere impacchettata nel war necessario per il deploy

base
+---logs
+---AuthorizationService
|
+----src -> main ---> java ---> com.project -> (classes)
|
+-> resources
|
+---->application.properties & log4j2.xml


+---ResourceService
|
+----src -> main ---> java ---> com.project -> (classes)
|
+-> resources
|
+---->application.properties & log4j2.xml

Mentre questo e' il file di configurazione presente in entrambi i moduli come potete vedere

Codice:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60" status="WARN">
<Properties>
    <Property name="logsRoot">${sys:catalina.home}/logs</Property>
</Properties>

<Appenders>

    <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
    </Console>

    <File name="LogFileAll" fileName="${logsRoot}/AuthorizationLogsAll.log" immediateFlush="true">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>

    </File>

    <File name="LogFileError" fileName="${logsRoot}/AuthorizationLogsError.log" immediateFlush="true">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>

    </File>

    <!--
    <RollingFile name="LOGFILEALL" fileName="${logsRoot}/application.log" filePattern="${logsRoot}/application.log">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>

        <Policies>
            <sizeBasedTriggeringPolicy size="10 MB" />
        </Policies>

        <DefaultRolloverStrategy min="1" max="4" />

    </RollingFile>
    -->
</Appenders>

<Loggers>

    <Root level="info">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="LogFileAll"/>
    </Root>

    <logger name="com.pcsystem" level="info" additivity="true">

        <appender-ref ref="LogFileError" level="warn"/>
        <!-- ogni log message marcato con PCSYSTEM_CONSOLE sara' inserito nella console
        <appender-ref ref="STDOUT">
            <MarkerFilter marker="PCSYSTEM_CONSOLE" onMatch="NEUTRAL" onMismatch="DENY" />
        </appender-ref>
        -->
    </logger>

    <!-- opzioni per i loggers del contesto apache tomcat
    <logger name="org.apache" level="info" additivity="true">
        <appender-ref ref="LogFileAll" />
    </logger>
    -->
</Loggers>


Grazie alla variabile ${sys:catalina.home} che specifica la home del progetto nella web app pensavo di aver risolto il problema, ma a quanto pare il file viene comunque creato con i relativi log di startup, ma i log conseguenti non vengono inseriti.

Ho paura che il problema sia inerente al cambio di struttura postumo dovuto al build di gradle, ma a quanto leggo sul sito di log4j2 il framework dovrebbe essere in grado comunque di leggere la configurazione, e di errori a tempo di startup dell'app non ne vedo ( inerenti alla config di log4j2 intendo ).

Avete qualche idea? Grazie in anticipo.
 
Pubblicità
Pubblicità
Indietro
Top