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平台为“
”,Unix平台为“
”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。