Log4j & lib apache HttpClient 4.5

Dans certains cas limite, les lib Simplicité n’étant pas suffisantes pour des appels HTTP complexes, il peut être utile d’utiliser des lib bas niveau comme Apache HttpClient (inclus dans les lib Simplicité). Cette lib peut par défaut avoir une verbosité excessive.

Cela peut être réglé en ajoutant le bloc suivant à la configuration log4j.xml:

<logger name="org.apache.http" additivity="false">
	<level value="info"/>
	<appender-ref ref="SIMPLICITE-FILE"/>
</logger>

Dans le contexte du conteneur Docker Simplicité, cela se traduit par un montage volume du fichier /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml pour y ajouter ce bloc. Dans la configuration livrée avec Simplicité 5.0, cela se traduit comme suit:

Docker Compose
version: "3"
services:
  simplicite:
    image: simplicite/platform:5-beta
    restart: always
    container_name: app
    volumes:
    - "${PWD}/log4j.xml:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml"
    ports:
     - 8080:8080
log4j.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

	<!-- Console appender -->
	<appender name="SIMPLICITE-CONSOLE" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out"/>
		<param name="Threshold" value="DEBUG"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d|%m%n"/>
		</layout>
	</appender>

	<!--  Daily rotating file appender -->
	<appender name="SIMPLICITE-FILE" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="${catalina.base}/webapps/ROOT/WEB-INF/log/simplicite.log"/>
		<param name="Append" value="true"/>
		<param name="Threshold" value="INFO"/>
		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
		</layout>
	</appender>

	<!-- Size rotating file appender
	<appender name="SIMPLICITE-FILE" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${catalina.base}/webapps/ROOT/WEB-INF/log/simplicite.log"/>
		<param name="Append" value="true"/>
		<param name="Threshold" value="INFO"/>
		<param name="MaxFileSize" value="1MB"/>
		<param name="MaxBackupIndex" value="10"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
		</layout>
	</appender>
	-->

	<!-- Sessions appender -->
	<appender name="SIMPLICITE-SESSION" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="${catalina.base}/webapps/ROOT/WEB-INF/log/simplicite-session.log"/>
		<param name="Append" value="false"/>
		<param name="Threshold" value="INFO"/>
		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d|%m%n"/>
		</layout>
	</appender>

	<!-- Redo logs appender -->
	<appender name="SIMPLICITE-REDOLOG" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="${catalina.base}/webapps/ROOT/WEB-INF/log/simplicite-redo.log"/>
		<param name="Append" value="false"/>
		<param name="Threshold" value="INFO"/>
		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d|%m%n"/>
		</layout>
	</appender>

	<logger name="com.simplicite.util.UserSession" additivity="false">
		<level value="info"/>
		<appender-ref ref="SIMPLICITE-SESSION"/>
	</logger>

	<logger name="com.simplicite.util.UndoRedo" additivity="false">
		<level value="info"/>
		<appender-ref ref="SIMPLICITE-REDOLOG"/>
	</logger>

	<logger name="org.apache.http" additivity="false">
		<level value="info"/>
		<appender-ref ref="SIMPLICITE-FILE"/>
	</logger>

	<root>
		<appender-ref ref="SIMPLICITE-CONSOLE"/>
		<appender-ref ref="SIMPLICITE-FILE"/>
	</root>

</log4j:configuration>