logo java logging logback
http://www.mediafire.com/file/2bxokkdyz2i/logback.zip

java - logo - Rolling Log Loggs en filesize y time



hbase (3)

He intentado configurar un proyecto de inicio de sesión simple para transferir mis archivos de registro por fecha y por tamaño de archivo, y hasta ahora no he podido hacer que mi appender se transfiera a otro archivo. En cambio, escribe en el registro especificado por la etiqueta <file />.

Aquí está mi archivo de configuración logback.xml:

<?xml version="1.0"?> <configuration scan="true" scanPeriod="10 seconds"> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </layout> </appender> <appender name="milliroller" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>log/output.log</file> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </layout> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>log/mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1KB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <root level="DEBUG"> <appender-ref ref="stdout"/> <appender-ref ref="milliroller"/> </root> <logger name="com.tkassembled.logback" level="DEBUG"/> </configuration>

A primera vista, parece que debería funcionar, ¿verdad? ¿Hay algo que estoy haciendo mal? Mi proyecto completo y editable está disponible en un zip aquí: http://www.mediafire.com/file/2bxokkdyz2i/logback.zip


Aunque esta es una pregunta antigua, sentí que una respuesta de trabajo es apropiada para ayudar a cualquier persona que requiera este tipo de implementación.

Utilizo la siguiente configuración de inicio de sesión para proporcionar un registro HTML, transferido por fecha y tamaño de archivo, así como el inicio de sesión para la depuración de la consola.

Los archivos de registro se almacenan en un directorio de logs con el nombre de logFile.html mientras está activo, y logFile.2013-mm-dd.i.html cuando se transfiere, donde i es la cantidad de archivos de registro de 50MB. Por ejemplo logFile.2013-01-07.0.html .

<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <charset>UTF-8</charset> <pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{35}) - %msg %n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/logFile.html</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>logs/logFile.%d{yyyy-MM-dd}.%i.html</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- or whenever the file size reaches 50MB --> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- keep 30 days'' worth of history --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <charset>UTF-8</charset> <layout class="ch.qos.logback.classic.html.HTMLLayout"> <pattern>%d{HH:mm:ss.SSS}%thread%level%logger%line%msg</pattern> </layout> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration>



Desde logback 1.1.7 (lanzado en marzo de 2016) está disponible un nuevo appender llamado SizeAndTimeBasedRollingPolicy que simplifica enormemente lo que debe hacer:

<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>app-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>10MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%msg%n</pattern> </encoder> </appender>

Mira here para más información.