SSM配置Log4j打印日志,打印SQL語句](https://blog.csdn.net/qq_42651904/article/details/88981997)
JAVA添加日志文件:首先導入需要的日志文件工具
導入步驟如下圖


之后再創建名為 log4j.properties file(配置文件,配置文件只能放在src里面不能放在其他包里面不然會找不到)
創建步驟如下

之后再修改logic的配置信息 具體操作如下

再將file的編碼格式改為UTF-8

之后再對log4j 進行配置,如果創建進入的編輯器框為 Properties, 不習慣可以點擊Source則變為原理的JAVa編輯器樣式
配置代碼如下
## 設置日志級別和輸出源
log4j.rootLogger = All,sysout,EFile
## sysout
## 設置日志輸出位置
log4j.appender.sysout = org.apache.log4j.ConsoleAppender
## 設置輸出布局
log4j.appender.sysout.layout = org.apache.log4j.PatternLayout
## 設置布局樣式
log4j.appender.sysout.layout.ConversionPattern = [%p] [%d] [%l] %n%m%n
## 設置輸出源優先級(對文件輸出源有效)
log4j.appender.sysout.Threshold = ALL
## 設置是否立即寫入
log4j.appender.sysout.ImmediateFlush = TRUE
## 設置輸出顏色
log4j.appender.sysout.target = System.out
##EFile
##輸出位置為文件
log4j.appender.EFile = org.apache.log4j.FileAppender
##指定寫入的文件名
log4j.appender.EFile.File = error.log
log4j.appender.EFile.layout = org.apache.log4j.PatternLayout
log4j.appender.EFile.layout.ConversionPattern = [%-5p] [%d] [%l]%n%m%n
log4j.appender.EFile.Threshold = ERROR
log4j.appender.EFile.ImmediateFlush = TRUE
再創建一個JAVA類
package com.Day_7_19;
import org.apache.log4j.Logger;
public class TestLog {
private static final Logger LOG = Logger.getLogger(TestLog.class);
public static void main(String[] args) {
LOG.debug("debug");
LOG.info("test");
LOG.warn("warn");
LOG.error("error");
LOG.fatal("fatal");
}
}
運行看控制台輸出如下信息

則表示配置成功,並且在你工作的項目中文件中能看到文件error
日志工具:Log4j
第一步:加入Maven依賴
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
第二步:在項目類路徑下面創建log4j.properties,並設置其內容為:
### 設置###
log4j.rootLogger = debug,stdout,D,E
### 輸出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 輸出DEBUG 級別以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 輸出ERROR 級別以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
第三步:測試代碼:
import org.apache.log4j.Logger;
public class Test {
private static Logger logger = Logger.getLogger(Test.class);
public static void main(String[] args) {
logger.info("Info");// 記錄info級別的信息
logger.debug("Debug");// 記錄debug級別的信息
try {
System.out.println(3 / 0);
} catch (Exception e) {
logger.error("Error");// 記錄error級別的信息
}
logger.fatal("Fatal");
}
}
運行程序,會在控制台中輸出日志信息,同時在E盤根目錄下創建log文件夾:
log4j配置說明
Appender 為日志輸出目的地,Log4j提供的appender有以下幾種:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件),
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
Layout:日志輸出格式,Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
打印參數: Log4J采用類C語言中的printf函數的打印格式格式化日志信息:
%m 輸出代碼中指定的消息
%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
%r 輸出自應用啟動到輸出該log信息耗費的毫秒數
%c 輸出所屬的類目,通常就是所在類的全名
%t 輸出產生該日志事件的線程名
%n 輸出一個回車換行符,Windows平台為“\r\n”,Unix平台為“\n”
%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},輸出類似:2002年10月18日 22 : 10 : 28 , 921
%l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
