佛山網(wǎng)站建設(shè)電話seo工作職責(zé)
點(diǎn)擊下方關(guān)注我,然后右上角點(diǎn)擊...“設(shè)為星標(biāo)”,就能第一時(shí)間收到更新推送啦~~~
LogBack 和 Log4j 都是開源日記工具庫(kù),LogBack 是 Log4j 的改良版本,比 Log4j 擁有更多的特性,同時(shí)也帶來很大性能提升。LogBack 官方建議配合 Slf4j 使用,這樣可以靈活地替換底層日志框架。
Logback 主要由三個(gè)模塊組成:
logback-core
logback-classic
logback-access
其中 logback-core 提供了 LogBack 的核心功能,是另外兩個(gè)組件的基礎(chǔ)。logback-classic 的地位和作用等同于 Log4J,它也被認(rèn)為是 Log4J 的一個(gè)改進(jìn)版,并且它實(shí)現(xiàn)了簡(jiǎn)單日志門面 SLF4J,所以當(dāng)想配合 SLF4J 使用時(shí),需要將 logback-classic 加入 classpath;而 logback-access 主要作為一個(gè)與 Servlet 容器交互的模塊,比如說 tomcat 或者 jetty,提供一些與 HTTP 訪問相關(guān)的功能。
1
Logback 使用實(shí)例
1、選擇 jar 包
想在 Java 程序中使用 Logback,需要依賴三個(gè) jar 包,分別是 slf4j-api,logback-core,logback-classic。其中 slf4j-api 并不是 Logback 的一部分,建議將 SLF4J 與 Logback 結(jié)合使用。
pom.xml:
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version>
</dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version>
</dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version>
</dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-access</artifactId><version>1.2.3</version>
</dependency>
2、logback.xml
在 src 根目錄下建立 logback.xml,根據(jù)自己的需求,相應(yīng)的修改其中的配置,其內(nèi)容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!--日志級(jí)別以及優(yōu)先級(jí)排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- status用來指定log4j本身的打印日志的級(jí)別 -->
<!--monitorInterval:Log4j能夠自動(dòng)檢測(cè)修改配置文件和重新配置本身,設(shè)置間隔秒數(shù) -->
<configuration status="WARN" monitorInterval="30"><!--先定義所有的appender --><appenders><!--這個(gè)輸出控制臺(tái)的配置 --><console name="Console" target="SYSTEM_OUT"><!--輸出日志的格式 --><PatternLayoutpattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" /></console><!--定義輸出到指定位置的文件 --><File name="log" fileName="/jpm/log4j2/logs/log.log" append="true"><PatternLayoutpattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" /></File><!-- 這個(gè)會(huì)打印出所有的info及以下級(jí)別的信息,每次大小超過size,則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔 --><RollingFile name="RollingFileInfo" fileName="/jpm/log4j2/logs/info.log"filePattern="/jpm/log4j2/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"><!--控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch) --><!-- DENY,日志將立即被拋棄不再經(jīng)過其他過濾器;NEUTRAL,有序列表里的下個(gè)過濾器過接著處理日志;ACCEPT,日志會(huì)被立即處理,不再經(jīng)過剩余過濾器。--><ThresholdFilter level="error" onMatch="DENY"onMismatch="ACCEPT" /><PatternLayoutpattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" /><Policies><TimeBasedTriggeringPolicy /><SizeBasedTriggeringPolicy size="100 MB" /></Policies><!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個(gè)文件,這里設(shè)置了30 --><DefaultRolloverStrategy max="30" /></RollingFile><RollingFile name="RollingFileError" fileName="/jpm/log4j2/logs/error.log"filePattern="/jpm/log4j2/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="ERROR" onMatch="ACCEPT"onMismatch="DENY" /><PatternLayoutpattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" /><Policies><TimeBasedTriggeringPolicy /><SizeBasedTriggeringPolicy size="100 MB" /></Policies></RollingFile></appenders><!--只有定義了logger并引入的appender,appender才會(huì)生效 --><loggers><!--過濾掉spring和mybatis的一些無用的DEBUG信息 --><logger name="org.springframework" level="INFO"></logger><logger name="org.mybatis" level="INFO"></logger><root level="INFO"><appender-ref ref="Console" /><appender-ref ref="log" /><appender-ref ref="RollingFileInfo" /><appender-ref ref="RollingFileError" /></root></loggers>
</configuration>
3、輸出日志的代碼示例
package jpm.logback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestLogback { public static void main(String[] args) { final Logger LOGGER = LoggerFactory.getLogger(TestLogback.class);LOGGER.debug("print debug log.");LOGGER.info("print info log.");LOGGER.error("print error log.");}
}
4、打印日志結(jié)果
上例使用 SLF4J 做日志接口, Logback 做日志實(shí)現(xiàn)的日志示例。
后面為大家介紹項(xiàng)目中的?Log4j2 使用示例。