国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SpringBoot Logback日志配置

2019-11-06 08:04:18
字體:
供稿:網(wǎng)友

Logback的配置介紹:

1、Logger、appender及l(fā)ayout

Logger作為日志的記錄器,把它關(guān)聯(lián)到應(yīng)用的對應(yīng)的context上后,主要用于存放日志對象,也可以定義日志類型、級別。

Appender主要用于指定日志輸出的目的地,目的地可以是控制臺、文件、遠(yuǎn)程套接字服務(wù)器、 MySQL、 PostreSQL、 Oracle和其他數(shù)據(jù)庫、 JMS和遠(yuǎn)程UNIX Syslog守護(hù)進(jìn)程等。

Layout 負(fù)責(zé)把事件轉(zhuǎn)換成字符串,格式化的日志信息的輸出。

2、logger context

各個logger 都被關(guān)聯(lián)到一個 LoggerContext,LoggerContext負(fù)責(zé)制造logger,也負(fù)責(zé)以樹結(jié)構(gòu)排列各 logger。其他所有l(wèi)ogger也通過org.slf4j.LoggerFactory 類的靜態(tài)方法getLogger取得。 getLogger方法以 logger 名稱為參數(shù)。用同一名字調(diào)用LoggerFactory.getLogger 方法所得到的永遠(yuǎn)都是同一個logger對象的引用。

3、有效級別及級別的繼承

Logger 可以被分配級別。級別包括:TRACE、DEBUG、INFO、WARN 和 ERROR,定義于 ch.qos.logback.classic.Level類。如果 logger沒有被分配級別,那么它將從有被分配級別的最近的祖先那里繼承級別。root logger 默認(rèn)級別是 DEBUG。

4、打印方法與基本的選擇規(guī)則

打印方法決定記錄請求的級別。例如,如果 L 是一個 logger 實(shí)例,那么,語句 L.info(“..”)是一條級別為 INFO 的記錄語句。記錄請求的級別在高于或等于其 logger 的有效級別時被稱為被啟用,否則,稱為被禁用。記錄請求級別為 p,其logger的有效級別為 q,只有則當(dāng) p>=q時,該請求才會被執(zhí)行。

該規(guī)則是 logback 的核心。級別排序?yàn)椋?TRACE < DEBUG < INFO < WARN < ERROR。

logback的使用:

Logback的默認(rèn)配置

如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默認(rèn)地會調(diào)用BasicConfigurator ,創(chuàng)建一個最小化配置。最小化配置由一個關(guān)聯(lián)到根 logger 的ConsoleAppender 組成。輸出用模式為%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 的 PatternLayoutEncoder 進(jìn)行格式化。root logger 默認(rèn)級別是 DEBUG。

1、Logback的配置文件

Logback 配置文件的語法非常靈活。正因?yàn)殪`活,所以無法用 DTD 或 XML schema 進(jìn)行定義。盡管如此,可以這樣描述配置文件的基本結(jié)構(gòu):以開頭,后面有零個或多個元素,有零個或多個元素,有最多一個元素。

2、Logback默認(rèn)配置的步驟

(1). 嘗試在 classpath 下查找文件 logback-test.xml;

(2). 如果文件不存在,則查找文件 logback.xml;

(3). 如果兩個文件都不存在,logback 用 Bas icConfigurator 自動對自己進(jìn)行配置,這會導(dǎo)致記錄輸出到控制臺。

3、Logback.xml 文件

在src/main/resources下添加Logback.xml目錄如下:

內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑--> <PRoperty name="LOG_HOME" value="/test/log" /> <!-- 控制臺輸出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件輸出的文件名--> <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天數(shù)--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!-- show parameters for hibernate sql 專為 Hibernate 定制 --> <logger name="org.hibernate.type.descrjava.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 日志輸出級別 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> <!--日志異步到數(shù)據(jù)庫 --> <!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">--> <!--&lt;!&ndash;日志異步到數(shù)據(jù)庫 &ndash;&gt;--> <!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">--> <!--&lt;!&ndash;連接池 &ndash;&gt;--> <!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">--> <!--<driverClass>com.mysql.jdbc.Driver</driverClass>--> <!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>--> <!--<user>root</user>--> <!--<passWord>root</password>--> <!--</dataSource>--> <!--</connectionSource>--> <!--</appender>--></configuration>

在程序用引用Logback:

package com.example.web;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class Example { private final static Logger logger = LoggerFactory.getLogger(Example.class); @RequestMapping("/") public String home() { logger.info("logback 訪問hello"); logger.error("logback 訪問hello"); return "Hello World!"; }}

通過運(yùn)行程序并訪問:http://localhost:8080,可以獲得下面的日志輸出:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 偏关县| 遂川县| 普陀区| 太仓市| 襄城县| 元谋县| 镇原县| 和政县| 象州县| 绥芬河市| 玛曲县| 瓮安县| 壤塘县| 盈江县| 吉安市| 兖州市| 万源市| 宝山区| 哈尔滨市| 江阴市| 车致| 同江市| 大余县| 梁河县| 左贡县| 泸州市| 资阳市| 佳木斯市| 衢州市| 集贤县| 克东县| 库尔勒市| 邯郸县| 阜康市| 石屏县| 兴和县| 高陵县| 汝南县| 高清| 丹江口市| 睢宁县|