1. 程式人生 > >logback配置日誌輸出

logback配置日誌輸出

<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-access</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>org.logback-extensions</groupId>
			<artifactId>logback-ext-spring</artifactId>
			<version>0.1.2</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>1.7.12</version>
		</dependency>


logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<property name="SYS_LOG_DIR" value="d:/WEBLOAN" />
 	<property name="LOG_FILE" value="webloan.log" />
	<property name="fileLayoutPattern"
		value="%-20(%d{yyyyMMdd_HH:mm:ss.SSS} [%logger{10}][%thread] [%-4relative])
				[%X{hostName} %X{requestId} %X{processId} %X{service.timing} ][%level] %msg%n" />
	<property name="consoleLayoutPattern"
		value="%-20(%d{yyyyMMdd_HH:mm:ss.SSS} [%logger][%thread] [%-4relative])
				[%X{hostName} %X{requestId} %X{processId} %X{service.timing} ][%level] %msg%n" />
	
	<appender name="LOG_ROLLING"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${SYS_LOG_DIR}/${LOG_FILE}</file>
		 <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 日誌過濾器,只記錄warn級別日誌 ,若要配置其他級別,複製appender,修改level,並在root中配置-->
            <level>WARN</level>  
            <onMatch>ACCEPT</onMatch>  
            <onMismatch>DENY</onMismatch>  
        </filter>  
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${SYS_LOG_DIR}/%d{yyyy-MM-dd}/${LOG_FILE}_%d{yyyy-MM-dd}_%i.zip</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>50MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<layout>
			<pattern>${fileLayoutPattern}</pattern>
		</layout>
	</appender>

	<!-- 控制檯輸出 -->
	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<layout name="StandardFormat" class="ch.qos.logback.classic.PatternLayout">
			<pattern>${consoleLayoutPattern}</pattern>
		</layout>
	</appender>

	<logger name="java.sql.PreparedStatement" level="DEBUG" />
	<logger name="java.sql.Connection" level="DEBUG" />
	<logger name="java.sql.Statement" level="DEBUG" />
	<logger name="com.ibatis" level="DEBUG" />
	<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />
	<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />
	<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />
	<!-- <logger name="org.springframework" level="ERROR" />  -->
	<logger name="net.sf.ehcache" level="ERROR"/>
	<!-- <logger name="org.mybatis.spring" level="ERROR"/> -->
	<root level="DEBUG">
		<appender-ref ref="CONSOLE" /> <!-- 控制檯輸出 -->
		<appender-ref ref="LOG_ROLLING" /> <!-- 檔案輸出 -->
	</root>
</configuration>

參考:

Logback是由log4j創始人設計的又一個開源日誌元件。logback當前分成三個模組:logback-core,logback- classic和logback-access。logback-core是其它兩個模組的基礎模組。logback-classic是log4j的一個 改良版本。此外logback-classic完整實現SLF4J API使你可以很方便地更換成其它日誌系統如log4j或JDK14 Logging。logback-access訪問模組與Servlet容器整合提供通過Http來訪問日誌的功能。

logback.xml配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!-- 從高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->  
  3. <!-- 日誌輸出規則  根據當前ROOT 級別,日誌輸出時,級別高於root預設的級別時  會輸出 -->  
  4. <!-- 以下  每個配置的 filter 是過濾掉輸出檔案裡面,會出現高級別檔案,依然出現低級別的日誌資訊,通過filter 過濾只記錄本級別的日誌-->  
  5. <!-- 屬性描述 scan:性設定為true時,配置檔案如果發生改變,將會被重新載入,預設值為true scanPeriod:設定監測配置檔案是否有修改的時間間隔,如果沒有給出時間單位,預設單位是毫秒。當scan為true時,此屬性生效。預設的時間間隔為1分鐘。   
  6.     debug:當此屬性設定為true時,將打印出logback內部日誌資訊,實時檢視logback執行狀態。預設值為false。 -->  
  7. <configuration scan="true" scanPeriod="60 seconds" debug="false">  
  8.     <!-- 定義日誌檔案 輸入位置 -->  
  9.     <property name="log_dir" value="/logs/ev_cmdb" />  
  10.     <!-- 日誌最大的歷史 30天 -->  
  11.     <property name="maxHistory" value="30"/>  
  12.     <!-- ConsoleAppender 控制檯輸出日誌 -->  
  13.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
  14.         <!-- 對日誌進行格式化 -->  
  15.         <encoder>  
  16.             <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>  
  17.         </encoder>  
  18.     </appender>  
  19.     <!-- ERROR級別日誌 -->  
  20.     <!-- 滾動記錄檔案,先將日誌記錄到指定檔案,當符合某個條件時,將日誌記錄到其他檔案 RollingFileAppender-->  
  21.     <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  22.         <!-- 過濾器,只記錄WARN級別的日誌 -->  
  23.         <filter class="ch.qos.logback.classic.filter.LevelFilter">  
  24.             <level>ERROR</level>  
  25.             <onMatch>ACCEPT</onMatch>  
  26.             <onMismatch>DENY</onMismatch>  
  27.         </filter>  
  28.         <!-- 最常用的滾動策略,它根據時間來制定滾動策略.既負責滾動也負責出發滾動 -->  
  29.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  30.             <!--日誌輸出位置  可相對、和絕對路徑 -->  
  31.             <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/error-log.log</fileNamePattern>  
  32.             <!-- 可選節點,控制保留的歸檔檔案的最大數量,超出數量就刪除舊檔案假設設定每個月滾動,且<maxHistory>是6,  
  33.             則只儲存最近6個月的檔案,刪除之前的舊檔案。注意,刪除舊檔案是,那些為了歸檔而建立的目錄也會被刪除-->  
  34.             <maxHistory>${maxHistory}</maxHistory>  
  35.         </rollingPolicy>  
  36.         <!-- 按照固定視窗模式生成日誌檔案,當檔案大於20MB時,生成新的日誌檔案。視窗大小是1到3,當儲存了3個歸檔檔案後,將覆蓋最早的日誌。   
  37.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">     
  38.           <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>     
  39.           <minIndex>1</minIndex>     
  40.           <maxIndex>3</maxIndex>     
  41.         </rollingPolicy>   -->  
  42.         <!-- 檢視當前活動檔案的大小,如果超過指定大小會告知RollingFileAppender 觸發當前活動檔案滾動   
  43.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">     
  44.             <maxFileSize>5MB</maxFileSize>     
  45.         </triggeringPolicy>   -->  
  46.         <encoder>  
  47.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>  
  48.         </encoder>  
  49.     </appender>  
  50.     <!-- WARN級別日誌 appender -->  
  51.     <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  52.         <!-- 過濾器,只記錄WARN級別的日誌 -->  
  53.         <filter class="ch.qos.logback.classic.filter.LevelFilter">  
  54.             <level>WARN</level>  
  55.             <onMatch>ACCEPT</onMatch>  
  56.             <onMismatch>DENY</onMismatch>  
  57.         </filter>  
  58.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  59.             <!-- 按天回滾 daily -->  
  60.             <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/warn-log.log  
  61.             </fileNamePattern>  
  62.             <!-- 日誌最大的歷史 60天 -->  
  63.             <maxHistory>${maxHistory}</maxHistory>  
  64.         </rollingPolicy>  
  65.         <encoder>  
  66.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>  
  67.         </encoder>  
  68.     </appender>  
  69.     <!-- INFO級別日誌 appender -->  
  70.     <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  71.         <!-- 過濾器,只記錄INFO級別的日誌 -->  
  72.         <filter class="ch.qos.logback.classic.filter.LevelFilter">  
  73.             <level>INFO</level>  
  74.             <onMatch>ACCEPT</onMatch>  
  75.             <onMismatch>DENY</onMismatch>  
  76.         </filter>  
  77.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  78.             <!-- 按天回滾 daily -->  
  79.             <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/info-log.log  
  80.             </fileNamePattern>  
  81.             <!-- 日誌最大的歷史 60天 -->  
  82.             <maxHistory>${maxHistory}</maxHistory>  
  83.         </rollingPolicy>  
  84. 相關推薦

    logback配置日誌輸出

    <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</ve

    Spring Boot中實現logback多環境日誌配置(日誌輸出)

      Spring Boot中實現logback多環境日誌配置 - EasonJim - 部落格園 https://www.cnblogs.com/EasonJim/p/7801549.html   Spring Boot中實現logback多環境日誌配置 方法

    SLF4J + logback 實現日誌輸出和記錄

    -- .com 保持 不存在 default stat 我們 fix jar包 一、SLF4J   SLF4J,即簡單日誌門面(Simple Logging Facade for Java),不是具體的日誌解決方案,它只服務於各種各樣的日誌系統。在使用SLF4J的時候,不

    利用slf4j配置日誌輸出

    1.  首先準備相關jar包,如下:      slf4j-api-1.7.2.jar,logback-classic-1.0.9.jar,logback-core-1.0.9.jar 2.  在src檔案路徑下,存放logback.xml檔案,具體內容如下

    Spring Boot 配置日誌輸出等級

    Spring boot 預設使用 logback作進行日誌輸出。 又兩種方式一個是通過application.properties 配置檔案的方式來配置。 另一種是通過logback.xml配置檔案的方式進行配置。 首先要說的是:application.propertie

    logback配置日誌檔案位置

    logback輸出的日誌檔案,預設會放到“啟動程序”的目錄下面 比如說程式直接在eclipse裡跑,就會輸出到eclipse.exe所在的目錄下,如果是在tomcat中跑,就會輸出到%TOMCAT_HOME%/bin目錄下 <appender name="FILE"

    Spring Boot 配置日誌輸出樣式

    想要修改Spring Boot的日誌配置,加了log4j.properties檔案發現是無效的,經過查詢文件,原來是可以直接在application.properites或application.yaml直接進行配置#配置日誌輸出型別 logging.pattern.cons

    Kafka之——擴充套件logback日誌輸出到Kafka例項

    一、Kafka的安裝 注意:本文是基於kafka_2.11-0.9.0.0.tgz、zookeeper-3.4.9.tar.gz 實現的。 二、實現 1、建立Formatter介面 主要作用是定義一個format方法,接收ILoggingEvent物件,返回字串。具體程

    log4j高階技巧--動態配置日誌輸出檔案的位置

    og4j高階技巧--動態配置日誌輸出檔案的位置     log4j的通常用法就是通過在其配置檔案(xml或properties)中直接將輸出檔案寫死,在很多情況下,這樣做是非常簡單而又有效的。但這樣做的缺點是,如果想讓這個web應用執行起來,必須要修改log4j的配置檔案。

    windows下tomcat配置日誌輸出到檔案

    This section explains how to configure Tomcat to use log4j rather than java.util.logging for all Tomcat’s internal logging. Note:

    springboot2+logback日誌輸出到oracle資料庫的踩坑之旅

    背景 根據本人寫部落格的慣例,先交代下背景。在公司的系統中,我們的配置檔案是切分有好幾個的,不同的配置檔案裡面配置內容有著不同,對

    logback日誌輸出不同級別到不同檔案(開發例項配置

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制檯 appender --> <appender name="STDOUT" class="

    logback 配置 不同level日誌輸出到不同檔案 按天 大小拆分

    logback.xml <!-- Logback configuration. See http://logback.qos.ch/manual/index.html --> <configuration scan="true" scanPeriod="1

    logback 配置不同級別日誌輸出

    logback節點配置詳解請參考:http://www.cnblogs.com/DeepLearing/p/5663178.html  配置不同級別日誌輸出模板如下: <?xml version="1.0" encoding="UTF-8"?> <con

    Spring boot logback日誌輸出多環境配置

    本人專案結構如下圖:特備註意logback.xml必須要改成logback-spring.xml,參看https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-cus

    logback配置、指定類日誌輸出到指定資料夾

    1、controller程式碼demopackage com.duke.api;@Controllerpublic class demo {private static final Logger logger = LoggerFactory.getLogger(demo.cl

    springboot logback-spring配置mybatis日誌輸出

    <logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG" additivity="false"/> log4j的ad

    log4j日誌輸出到文件的配置

    imp 名稱 1.0 sql apach warn ring source util 1.Maven的dependency 2.log4j.properties的配置 3.Junit的Test類 4.web.xml的配置(非必要) 5.spring的db.config的配置

    關於spring-boot 的日誌輸出到控制臺和指定文件的配置

    add contex ring level true source ont utf onf (1)問題:在本地使用spring-boot開發的程序,一直想讓文件按照天輸出到某個文件夾下面。但是一直成功。 解決過程: 想到日誌優先想著配置lo

    Django 中使用 logging 配置 logger 自定義日誌輸出

    講解 handler ati dmi ase set file 過程 require 在使用 django 開發過程中,默認的日誌輸出是不能滿足我們去排查問題的,往往需要自定義的日誌輸出,幫助我們去排查程序BUG,定位問題原因。 在使用 django 的開發過程中,我使用的