JAVA add a log file

SSM configuration Log4j print the log, print SQL statements] (https://blog.csdn.net/qq_42651904/article/details/88981997)

JAVA add a log file: first need to import log files tool

FIG introducing steps

 

 

 

 

 

 

After re-create a file named log4j.properties file (configuration files, configuration files can be placed inside the src can not be placed inside or will not find in other packages)

Creating steps

 

 

 

 

After logic modify configuration information of the specific operation is as follows

 

 

 

Then encoded file format to UTF-8

 

 

 

 

Then again configuring log4j, if you create into the editor box Properties, then click the Source can become accustomed to the principles of JAVa editor style

Configuration code as follows

## 设置日志级别和输出源
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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

Guess you like

Origin www.cnblogs.com/bomily0212/p/12175812.html