<configuration scan="true" scanPeriod="10 seconds"> <include resource="org/springframework/boot/logging/logback/base.xml" /> <property name="LOG_PATH" value="E://logs" /><!-- 這裏指定日誌保存到哪一個文件夾裏去,聽說要指定絕對路徑 --> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 表示這個appender只記錄info級別的日誌 --> <level>info</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <File>${LOG_PATH}/info/info.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/info/info-%d{yyyyMMdd}-%i.log.zip</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>180</maxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n </Pattern> </layout> </appender> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <File>${LOG_PATH}/error/error.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- ${LOG_PATH}/error/error-%d{yyyy-MM-dd_HH-mm}.log.zip--> <fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}-%i.log.zip<!-- 這裏後綴只要帶了.zip就會自動把滿了的日誌壓縮成zip包 --> </fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>180</maxHistory> <!-- 取決於上面的fileNamePattern的%d後面的大括號裏是什麼,若是是到分鐘(如:{yyyy-MM-dd_HH-mm}),那就只會保留近maxHistory分鐘的日誌,這個並不徹底準確--> <!-- 只能說大概,由於也有可能保存了超過maxHistory分鐘一些的日誌 --> <!-- 而若是是面的fileNamePattern的%d後面的大括號裏是以天的形式命名(如:{yyyy-MM-dd}),那就會保留maxHistory天的日誌,寫成30的話就一個月,180的話不就半年咯? --> </rollingPolicy> <append>true</append> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n </Pattern> </layout> </appender> <!-- hibernate日誌輸入 --> <!-- <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /> <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="TRACE" /> <logger name="org.hibernate.SQL" level="INFO" /> <logger name="org.hibernate.engine.QueryParameters" level="INFO" /> <logger name="org.hibernate.engine.query.HQLQueryPlan" level="INFO" /> --> <root level="WARN"><!-- 這裏寫的WARN,至關於隻日志代碼裏只有Warn及以上的纔會生效 --> <appender-ref ref="INFO_FILE" /><!-- 可是一旦有有效的日誌代碼的話,除非這個appender裏面還定義了filter,要否則的話會分別記錄到下面的appender裏去 --> <appender-ref ref="ERROR_FILE" /> </root> </configuration>
使用:spring
隨便在哪一個類裏:sql
private final static Logger logger = LoggerFactory.getLogger(XXX.class);
而後就能夠在方法體裏使用了:app
logger.info("這是一個info級別的日誌");