开发日志log4j集成log4j相关配置
Takake1.log4j使用
1.1.log4j pom
1 2 3 4 5
| <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
|
1.2.配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| log4j.rootLogger = debug,stdout,D
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%%m%n
log4j.appender.D = org.apache.log4j.FileAppender log4j.appender.D.File = D:/logs/error.log4j log4j.appender.D.Append = true log4j.appender.D.Threshold = warn 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
|
Thresho1d=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意味着着所有的消息都会被立即输出
Target=System.err: 默认情况下是:System.out,指定输出控制台
Threshold=WARN:指定日志消息的输出最低层次
ImmediateFlush=true:默认值是true,意味着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容
(3) DailyRollingFileAppender 选项
Threshold=WARN:指定日志消息的输出最低层次
lmmediateFlush=true:默认值是true,意味着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容DatePattern=’yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下
1)yyyy-MM:每月
2)yyyy-ww:每周
3)yyyy-MM-dd:每天
4)yyyy-MM-dd-a:每天两次
5)yyyy-MM-dd-HH:每小时
6)yyyy-MM-dd-HH-mm:每分钟
(4)RollingFileAppender 选项
Threshold=WARN:指定日志消息的输出最低层次
lmmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB:后缀可以是KB,MB 或者是 GB.在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1
MaxBackuplndex=2:指定可以产生的滚动文件的最大数。
布局格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.1ayout.option1 = vauel
log4j.appender.appenderName. ayout.option = valueN其中,Log4j提供的1ayout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout (可以灵活地指定布局模式),
org.apache.log4j.simpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)
2.log4j2+springboot
2.1.集成配置
这个可能配置起来比较麻烦,因为springboot默认使用 Logback 和 SLF4J 作为其日志系统,再更改为log4j需要排除且禁用默认的日志框架,需要修改pom文件,和yml配置。
2.1.1.pom依赖配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.14.1</version> </dependency>
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency>
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> </dependencies>
|
2.1.2.application.yml
1 2 3 4 5 6 7 8
| spring: main: log-startup-info: false logging: level: root: OFF org.springframework: OFF
|
2.2.日志测试主类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package com.gaomu.vulner;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
public class Test { private static Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); public static void main(String[] args) { logger.trace("log4j2日志输出, This is trace message"); System.out.println("-0----------------"); logger.fatal("fatal信息"); logger.error("error信息"); logger.warn("warn信息"); logger.info("info信息"); logger.debug("debug信息"); logger.trace("trace信息");
} }
|