Comment puis-je enregistrer les fichiers HTTP @GET
et @POST
dans des fichiers distincts. Fondamentalement, nous voulons juste avoir des fichiers journaux séparés pour lire (GET) et écrire (PUT, POST, DELETE). Je et en utilisant Slf4j
avec logback
avec jetée intégrée.Comment se connecter HTTP GET et HTTP Post à des fichiers distincts
Une solution consiste à avoir deux enregistreurs en classe et à les utiliser en conséquence. à savoir
private final static Logger log = LoggerFactory.getLogger(Controller.class);
private final static Logger writeLog = LoggerFactory.getLogger("WRITE");
Maintenant, selon l'exigence d'utiliser l'enregistreur ci-dessus, et Define Appender
Logger
.
<appender name="APPENDER_READ"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME}/logs/read.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>read.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %X{TaskKey} %msg%n</pattern>
</encoder>
</appender>
<appender name="APPENDER_WRITE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME}/logs/write.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/write.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %X{TaskKey} %msg%n</pattern>
</encoder>
</appender>
<logger name="WRITE" level="warn" additivity="false">
<appender-ref ref="APPENDER_WRITE" />
</logger>
<root level="WARN">
<appender-ref ref="APPENDER_READ" />
</root>
Mais je suis à la recherche d'une meilleure solution qui peut commencer à se connecter pas de contrôleur, mais à partir du niveau Handler (dès que la demande entre).
Merci @riskop, cela fonctionne très bien. Merci d'avoir répondu. –