All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jUtilities.1.0.0.source-code.logback.xml Maven / Gradle / Ivy

There is a newer version: 1.0.3
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<configuration
	debug="false"
	scan="true"
	scanPeriod="30 seconds">
		
		<!--
		  *
			* La balise PROPERTY permet de créer des variables
			*
		 -->
		 
		<!-- Emplacement des fichiers de logs -->
	<property
		name="LOGS_FOLDER"
		value="logs" />
	<property
		name="LOGS_TO_COLLECT_FOLDER"
		value="logs/collect" />

  <!--
		Différents formats pour une ligne de logs
		http://logback.qos.ch/manual/layouts.html
  -->
	<property
		scope="context"
		name="log.pattern1"
		value="%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread][%class{0}.%method:%line][%logger{0}] : %m%n" />
	<property
		scope="context"
		name="log.pattern2"
		value="%d{yyyyMMdd'T'HHmmss.SSS} %-5level [%thread][%logger{0}] %m%n" />
	<property
		scope="context"
		name="log.pattern3"
		value="%d{yyyy/MM/dd HH:mm:ss.SSS,Europe/Paris} %-5level  [%thread] - %logger{36} - %m%n" />
	<property
		scope="context"
		name="log.pattern_log"
		value="%d{yyyy/MM/dd HH:mm:ss,SSS} [%thread] %-5level %logger{36} - %m %throwable{0}%n" />
	<property
		scope="context"
		name="log.pattern_audit"
		value="%m %throwable{0}%n" />
	<property
		scope="context"
		name="log.pattern_stdout"
		value="%d{HH:mm:ss.SSS, Europe/Paris} %highlight(%-5level) [%thread][%logger{0}] : %m%n" />
	<property
		scope="context"
		name="log.pattern_simple_stdout"
		value="%m%n" />
  <!--  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />  -->

  <!-- Insert the current time formatted as "yyyyMMdd'T'HHmmss" under
       the key "bySecond" into the logger context. This value will be
       available to all subsequent configuration elements. -->
	<timestamp
		key="bySecond"
		datePattern="yyyyMMdd'T'HHmmss" />

  
  <!--
	*
	*
	*  APPENDERS 
	*
	*  Indique où afficher les logs
	*
	*
	*
	-->

<!--  
      ******** Sur la console
 -->
	<appender
		name="STDOUT"
		class="ch.qos.logback.core.ConsoleAppender">
    <!-- <withJansi>true</withJansi> -->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>DEBUG</level>
		</filter>
		<encoder>
			<charset>utf-8</charset>
			<pattern>${log.pattern_stdout}</pattern>
		</encoder>
	</appender>

<!--  
      ******** Dans un fichier XML
 -->
	<appender
		name="xml"
		class="ch.qos.logback.core.FileAppender">
		<file>${LOGS_FOLDER}/application.xml</file>
		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
			<layout class="ch.qos.logback.classic.log4j.XMLLayout">
				<locationInfo>true</locationInfo>
			</layout>
		</encoder>
	</appender> 

<!--  
      ******** Dans un fichier au format HTML
 -->
	<appender
		name="html"
		class="ch.qos.logback.core.FileAppender">
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>INFO</level>
		</filter>
		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
			<layout class="ch.qos.logback.classic.html.HTMLLayout">
				<pattern>%relative%thread%mdc%level%logger%msg</pattern>
			</layout>
		</encoder>
		<file>${LOGS_FOLDER}/application.html</file>
	</appender>


<!--  
      ******** Fichier par date (troubleshooting)
	  Log jusqu'au niveau debug
	  Insert les numéros de lignes dans les logs
 -->
	<appender
		name="log-file-history"
		class="ch.qos.logback.core.FileAppender">
		<file>${LOGS_FOLDER}/application-troubleshooting-${bySecond}.log
		</file>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>DEBUG</level>
		</filter>
		<encoder>
			<charset>UTF-8</charset>
			<outputPatternAsHeader>false</outputPatternAsHeader>
			<pattern>${log.pattern1}</pattern>
		</encoder>
	</appender>
 
<!--  
      ******** Fichier log pour production
	  Log jusqu'au niveau info
 -->
	<appender
		name="log-file"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOGS_FOLDER}/application.log</file>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>INFO</level>
		</filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOGS_TO_COLLECT_FOLDER}/application.%d{yyyyMMdd}.log
			</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<charset>UTF-8</charset>
			<outputPatternAsHeader>true</outputPatternAsHeader>
			<pattern>${log.pattern2}</pattern>
		</encoder>
	</appender>
  
  
    <!-- Daily rollover appender that also appends timestamp and rolls over on startup -->
	<appender
		name="debugFileAppender"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOGS_FOLDER}/application_debug.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOGS_TO_COLLECT_FOLDER}/application_debug.%d{yyyyMMdd_HHmmss}.log
			</fileNamePattern>
			<TimeBasedFileNamingAndTriggeringPolicy
				class="fr.manastria.logback.StartupTimeBasedTriggeringPolicy" />
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern1}</pattern>
		</encoder>
	</appender>

  
  <!-- 
  
  Cette balise permet de définir le niveau globale des logs de l'application et de référencer les différents appenders.
  
  -->
	<root>
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</root>
  
  <!--
	*
	*
	*  LOGGER 
	*
	*  Les classes/packages qui seront tracées
	*
	*
	*
	-->
  <!-- additivity=false : empeche les parents de recevoir le log  -->
  <!--
  Cette balise permet de redéfinir une configuration différente de la balise <root> sur un package particulier.
A l'aide de l'attribut name et level, on peut modifier le niveau de log défini par la balise <root> sur un package spécifique.

Cette balise permet également de faire référence à d'autres appenders.
L'attribut additivity permet d'indiquer si les logs seront également affichés par les appenders définis dans <root> ou pas.
-->
	<logger
		name="fr.manastria"
		additivity="false">
		<level value="TRACE" />
		<appender-ref ref="STDOUT" />
		<appender-ref ref="log-file" />
		<appender-ref ref="log-file-history" />
		<appender-ref ref="xml" />
		<appender-ref ref="html" />
		<appender-ref ref="debugFileAppender" />
	</logger>



</configuration>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy