logback常用配置
生活随笔
收集整理的這篇文章主要介紹了
logback常用配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1實(shí)現(xiàn).控制臺(tái)輸出
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><target>System.out</target><encoder><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}-%msg%n </Pattern><charset>utf-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch></filter> </appender> <appender name="STDOUT_ERROR" class="ch.qos.logback.core.ConsoleAppender"><target>System.err</target><encoder><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -%msg%n </Pattern><charset>utf-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter> </appender>2實(shí)現(xiàn):將所有的日志消息一直追加到指定的文件中
<appender name="FILE_APPEND" class="ch.qos.logback.core.FileAppender"><file>F:/log/test/logback.log</file><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -%msg%n </Pattern><charset>utf-8</charset></encoder><append>true</append> </appender>3實(shí)現(xiàn):每天產(chǎn)生一個(gè)日志文件且只保存最近10天的日志
<appender name="FILE_LIMITED_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>F:/log/test/today.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern><charset>utf-8</charset></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>F:/log/test/%d{yyyy-MM-dd}.log</fileNamePattern><!-- 10 day --><maxHistory>10</maxHistory></rollingPolicy> </appender>?4實(shí)現(xiàn).一天產(chǎn)生一個(gè)日志,如果當(dāng)天日志超過10M將進(jìn)行再分割
<appender name="FILE_DAILY_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>F:/log/test/today.log</file><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n </Pattern><charset>utf-8</charset></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>F:/log/test/%d.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy> </appender>5實(shí)現(xiàn):所有的日志消息追加到一個(gè)日志文件中,如果該文件超過100M,就將其打包成zip.(歸檔個(gè)數(shù)不限)
?注意:*fileNamePattern不能使用%d,
? ? ? ? ? *如果歸檔文件名為backup%i.zip,那么日志文件的后綴名(log)將丟失
6實(shí)現(xiàn): 【在5實(shí)的基礎(chǔ)上添加】只保存最近的3個(gè)歸檔文件(.zip)
<appender name="FILE_LIMITED_ARCHIVE" class="ch.qos.logback.core.rolling.RollingFileAppender">?<file>F:/log/test/logback.log</file>?<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">?<fileNamePattern>F:/log/test/backup%i.log.zip</fileNamePattern>?<minIndex>1</minIndex>?<maxIndex>3</maxIndex> ????</rollingPolicy>?<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">?<maxFileSize>100MB</maxFileSize> ????</triggeringPolicy>?<encoder>?<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{36} - %msg%n</pattern> ????</encoder> </appender>7.輸出到數(shù)據(jù)庫
<!--日志異步到數(shù)據(jù)庫 --> <appender name="DBAppender" class="ch.qos.logback.classic.db.DBAppender"><connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource"><dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"><driverClass>com.mysql.jdbc.Driver</driverClass><jdbcUrl>jdbc:mysql://xxxx:3306/xy-pay?autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true</jdbcUrl><user>xxx</user><password>xxx</password></dataSource></connectionSource><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender>建表如下:BEGIN; DROP TABLE IF EXISTS logging_event_property; DROP TABLE IF EXISTS logging_event_exception; DROP TABLE IF EXISTS logging_event; COMMIT; BEGIN; CREATE TABLE logging_event ( timestmp BIGINT NOT NULL, formatted_message TEXT NOT NULL, logger_name VARCHAR(254) NOT NULL, level_string VARCHAR(254) NOT NULL, thread_name VARCHAR(254), reference_flag SMALLINT, arg0 VARCHAR(254), arg1 VARCHAR(254), arg2 VARCHAR(254), arg3 VARCHAR(254), caller_filename VARCHAR(254) NOT NULL, caller_class VARCHAR(254) NOT NULL, caller_method VARCHAR(254) NOT NULL, caller_line CHAR(4) NOT NULL, event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ); COMMIT; BEGIN; CREATE TABLE logging_event_property ( event_id BIGINT NOT NULL, mapped_key VARCHAR(254) NOT NULL, mapped_value TEXT, PRIMARY KEY(event_id, mapped_key), FOREIGN KEY (event_id) REFERENCES logging_event(event_id) ); COMMIT; BEGIN; CREATE TABLE logging_event_exception ( event_id BIGINT NOT NULL, i SMALLINT NOT NULL, trace_line VARCHAR(254) NOT NULL, PRIMARY KEY(event_id, i), FOREIGN KEY (event_id) REFERENCES logging_event(event_id) ); COMMIT;?
轉(zhuǎn)載于:https://my.oschina.net/u/2552286/blog/597895
總結(jié)
以上是生活随笔為你收集整理的logback常用配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2015上安
- 下一篇: swift 适配的方法autolayou