How to log slf4j to a file in cuba Framework

Multi tool use
Multi tool use


How to log slf4j to a file in cuba Framework



I'm trying to configure cuba framework in order to write the logs in a file, but at the moment I cannot.



I have in the java files:


private static final Logger LOG = LoggerFactory.getLogger(BlisterauftragServiceImpl.class);
LOG.info("This is a, info log");



In the build.gradle file I have:


logbackConfigurationFile = 'etc/war-logback.xml'



Then in the folder etc, I have the file war-logback.xml


<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false" packagingData="true">

<property name="logDir" value="${app.home}/logs"/>

<appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDir}/app.log</file>

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${logDir}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>

<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread%X{cubaApp}%X{cubaUser}] %logger - %msg%n</pattern>
</encoder>
</appender>

<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>

<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root>
<appender-ref ref="Console"/>
<appender-ref ref="File"/>
</root>

<!-- Begin CUBA -->

<logger name="com.haulmont.cuba" level="DEBUG"/>

<logger name="com.haulmont.cuba.core.sys" level="INFO"/>

<logger name="com.haulmont.cuba.core.sys.CubaDefaultListableBeanFactory" level="WARN"/>

<logger name="com.haulmont.cuba.core.app.scheduling" level="INFO"/>

<logger name="com.haulmont.cuba.web.sys" level="INFO"/>

<logger name="com.haulmont.cuba.portal" level="INFO"/>

<logger name="com.haulmont.restapi.sys" level="INFO"/>

<logger name="com.haulmont.cuba.core.app.LockManager" level="INFO"/>

<!-- End CUBA -->

<logger name="eclipselink" level="WARN"/>

<logger name="eclipselink.sql" level="INFO"/>

<logger name="org.springframework" level="WARN"/>

<logger name="org.activiti" level="INFO"/>

<logger name="freemarker" level="INFO"/>

<logger name="org.thymeleaf.TemplateEngine" level="INFO"/>

<logger name="org.docx4j" level="WARN"/>

<logger name="org.xlsx4j" level="WARN"/>

<logger name="org.hibernate" level="WARN"/>

<logger name="sun" level="INFO"/>

<logger name="com.sun" level="INFO"/>

<logger name="javax" level="INFO"/>

<logger name="org.apache" level="INFO"/>

<logger name="org.atmosphere" level="INFO"/>

<logger name="org.docx4j.utils.ResourceUtils" level="ERROR"/>

<logger name="org.docx4j.Docx4jProperties" level="ERROR"/>

<logger name="org.xlsx4j.jaxb.Context" level="ERROR"/>

<!-- Begin Perf4J -->

<appender name="PerfStatFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDir}/perfstat.log</file>
<append>true</append>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logDir}/perfstat.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>

<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>

<appender name="CoalescingStatistics" class="org.perf4j.logback.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="60000"/>
<appender-ref ref="PerfStatFile"/>
</appender>

<appender name="UIPerfStatFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDir}/perfstat-ui.log</file>
<append>true</append>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logDir}/perfstat-ui.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>

<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>

<appender name="UICoalescingStatistics" class="org.perf4j.logback.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="120000"/>
<appender-ref ref="UIPerfStatFile"/>
</appender>

<logger name="org.perf4j.TimingLogger" additivity="false" level="INFO">
<appender-ref ref="CoalescingStatistics"/>
</logger>

<logger name="com.haulmont.cuba.gui.logging.UIPerformanceLogger" additivity="false" level="INFO">
<appender-ref ref="UICoalescingStatistics"/>
</logger>

<!-- End Perf4J -->

</configuration>



If I change anything in this file, it don't do anything. For example I have tried to change:


<file>${logDir}/app.log</file>



to:


<file>${logDir}/app1.log</file>



Then in th folder deploy/tomcat/conf, I find a file logback.xml. In the folder deploy/tomcat/logs, I will find all my logs. I can change the conf files and that will work fine. But my file war-logback is not taken into account.



Then my problem is that deploy folder is created a overrited each time new. Then I have to rewrite le logback.xml file each time the code is regenerated.



Any ideas why is it so?



Thanks
Best regards




1 Answer
1



logback tries to find configuration as the fllowing steps:



and you will find it here



so, let's make sure the configuration file in your war is named "logback-test.xml","logback.groovy" or "logback.xml", maybe that's why "war-logback.xml" was ignored.






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

9xGgbl4xB14,1PNBJNc8eUYdxESK3Os6yOI72 HgkAyV F,NQ X8nSLzf0EadZaRxwi
YNS,2G3bOLneLG mJhxLpV17o3dK2SJQvNaruHYSUSqpCHbjq8LFeW1Bg1LDXqGt,Po cZ ggeKcy4

Popular posts from this blog

PHP contact form sending but not receiving emails

Do graphics cards have individual ID by which single devices can be distinguished?

Create weekly swift ios local notifications