java-slf4j的使用


 

 

使用log日志系統而不是使用System的意義:
1,打印不可控制

如果不需要日志,那么使用system需要刪除或者刪除所有的相關代碼,而log可以通過配置文件控制開關.

2,沒有分級

log至少有5級,可以分層顯示日志,而system一股腦打印出來.

 

slf4j介紹:
slf4j不是一個真正的日志實現,而是一個抽象層,它允許你在后台使用任意一個日志類庫。這樣在擴展功能時,你真不會希望使用你擴展代碼必須使用你選擇的日志類庫。

 

本文使用maven完成slf4j的配置,之所以使用maven是為了只需要提供slf4j的依賴,maven會自動下載關聯的依賴.

 

Maven project->create a simple project->輸入group id和artifact id->補全殘缺的目錄(如果完整的就不需要了)

這部分可以參考http://blog.csdn.net/fengsigaoju/article/details/75003651


接下去提供log.properties配置文件控制日志系統

在src/main/resources下新建log.properties

log4j.rootLogger=INFO, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

在src/main/java 新建logTest 類
import java.text.MessageFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class logTest {
private static final Logger logger = LoggerFactory.getLogger(logTest.class);

public static void main(String[] args) {
// 直接打印字符串
logger.info("姓名:鳳思高舉,密碼:******");

String username = "鳳思高舉";
String password = "******";

// 拼接字符串寫法
logger.info("姓名:" + username + ",密碼:" + password);

// 使用MessageFormat的寫法
logger.info(MessageFormat.format("姓名:{0},密碼:{1}", username, password));
}
}

最終結果:
INFO [main] (logTest.java:10) - 姓名:鳳思高舉,密碼:******
INFO [main] (logTest.java:16) - 姓名:鳳思高舉,密碼:******
INFO [main] (logTest.java:19) - 姓名:鳳思高舉,密碼:******

可以在項目的根目錄下找到輸入到文件中的配置文件example.log

————————————————
版權聲明:本文為CSDN博主「fengsigaoju」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fengsigaoju/java/article/details/76945937

 

 

maven 中 java-slf4j的使用

 Maven web 項目中日志記錄

1.pom.xml中引用

復制代碼
        <!-- log -->
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
            <!-- <scope>test</scope> -->
        </dependency>
復制代碼

2.日志配置log4j.properties

復制代碼
log4j.rootLogger=CONSOLE,FILE
log4j.addivity.org.apache=true

# 應用於控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 每天新建日志
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=D:/log4j/log
log4j.appender.A1.Encoding=UTF-8
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n

#應用於文件
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=E:/log4j/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=UTF-8
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
復制代碼

 3.代碼中使用

復制代碼
    private static final Logger log = LoggerFactory.getLogger(AppLog.class);

    public static void main(String[] args) {
        
        log.debug("debug");
        log.info("info");
        log.error("error");
    }
復制代碼

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM