log4j配置

log4j配置文件

1.log4j.(mybatis)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I1e7mW2N-1627697901370)(E:\java文档\暑假笔记\imge\log4j.properties.png)]

log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

2.(spring)

日志:

pom:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.13.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.13.3</version>
    </dependency>

在Spring项目中使用Log4j2.xml日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VvakDXyT-1627697901373)(E:\java文档\暑假笔记\imge\日志添加的log4j位置.png)]

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置LoggerConfig,即Appenders的日志级别为WARN -->
<Configuration status="info">
    <!-- Appenders支持配置多个Appender,支持向不同的目标输送日志,本例为配置向控制台输出 -->
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%-5level[%d{yyyy/MM/dd HH:mm:ss.SSS}] [%t]:  \n\t%logger{36} \n\t%msg %n" />
        </Console>
    </Appenders>
    <!-- Loggers支持配置多个Logger,可引用不同的目标Appender,也可根据业务需求定制特定要求的Appender -->
    <Loggers>
    <!--  4个级别低->高:debug,info,warning,error -->
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

slf4j+log4j2的配置

昨天自己测试了一下slf4j+log4j2的配置,可以正常使用,虽然配置十分简单,但好记性不如烂笔头,想想还是记录下来吧。

**运行的环境:**jdk1.7、tomcat7、Maven的web项目

1.在新建的maven项目的pom文件中添加jar包依赖(依赖代码在步骤末尾):

需要添加依赖的jar包有:

slf4j的api接口包:slf4j-api

log4j2的核心包:log4j-core

log4j2的api接口包:log4j-api

slf4j对应log4j2日志框架的驱动包:log4j-slf4j-impl

log4j2的异步日志功能包:com.lmax.disruptor

解决web项目log4j可能出现警告的jar包:log4j-web

2.配置log4j2.xml日志配置文件(日志配置文件内容放在步骤末尾

·日志配置文件默认读取路径为src/main/resource

·若文件放置在默认读取路径下则无需配置读取路径

·若文件放置到其他路径下则需要在web.xml中设置日志配置文件的读取路径,代码如下:

<context-param>
   <param-name>log4jConfiguration</param-name>
   <param-value>classpath:log4j2.xml</param-value>
</context-param>

3.在代码中使用日志功能:

[复制代码](javascript:void(0)😉

 1 import org.slf4j.Logger;
 2 import org.slf4j.LoggerFactory;
 3 
 4 public class logTest {
 5 
 6     // 通过slf4j接口创建Logger对象
 7     private static final Logger logger = LoggerFactory.getLogger(logTest.class);
 8 
 9     public static void main(String[] args) {
10         logger.info("this is info");
11         logger.error("this is error");
12     }
13 }

[复制代码](javascript:void(0)😉

运行效果:

img

****关于日志配置文件的详细说明请参考*****log4j2配置文件log4j2.xml详解,以下是pom.xml*需要加入的jar包依赖以及**日志配置文件log4j2.xml内容示例:****

pom.xml需要加入的jar包依赖:

[复制代码](javascript:void(0)😉

<properties>

<!-- jar包版本设置 -->

<slf4j.version>1.7.21</slf4j.version>

<log4j.version>2.11.0</log4j.version>

</properties>

<dependencies>

<!-- 导入slf4j的接口包以及对应日志框架的驱动包 -->

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>${slf4j.version}</version>

</dependency>

<!--用于slf4j与log4j2保持桥接 -->

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->

<dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-slf4j-impl</artifactId>

    <scope>runtime</scope>

    <version>${log4j.version}</version>

</dependency>

 

<!-- 导入日志框架核心包与接口包 -->

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<scope>runtime</scope>

<version>${log4j.version}</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-api</artifactId>

    <version>${log4j.version}</version>

</dependency>

 

<!--用于解决web环境下关闭服务器时可能出现的log4j线程无法及时关闭的warn,web工程需要包含log4j-web,非web工程不需要 -->

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-web -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-web</artifactId>

<scope>runtime</scope>

<version>${log4j.version}</version>

</dependency>

 

<!--使用log4j2的AsyncLogger时需要包含disruptor -->

<!-- https://mvnrepository.com/artifact/com.lmax/disruptor -->

<dependency>

    <groupId>com.lmax</groupId>

    <artifactId>disruptor</artifactId>

    <scope>runtime</scope>

    <version>3.4.2</version>

</dependency>

</dependencies>

[复制代码](javascript:void(0)😉

日志配置文件内容示例:

[复制代码](javascript:void(0)😉

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!-- 
 4  日志说明:
 5 
 6 (1)请根据实际情况配置各项参数
 7 
 8 (2)需要注意日志文件备份数和日志文件大小,注意预留目录空间
 9 
10 (3)实际部署的时候backupFilePatch变量需要修改成linux目录
11 
12  -->
13 
14 <configuration status="error">
15 
16     <Properties>
17 
18         <Property name="fileName">front.log</Property>
19 
20         <Property name="backupFilePatch">d:/usr/front/log/</Property>
21 
22       </Properties>
23 
24     <!--先定义所有的appender-->
25 
26     <appenders>
27 
28         <!--这个输出控制台的配置-->
29 
30         <Console name="Console" target="SYSTEM_OUT">
31 
32              <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
33 
34             <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
35 
36             <!--这个都知道是输出日志的格式-->
37 
38             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
39 
40         </Console>
41 
42         
43 
44         <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
45 
46         <RollingFile name="RollingFile" fileName="${backupFilePatch}/${fileName}"
47 
48             filePattern="${backupFilePatch}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz">
49 
50             <PatternLayout
51 
52                 pattern="%d{yyyy-MM-dd HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n" />
53 
54             
55 
56             <!-- 日志文件大小 -->
57 
58             <SizeBasedTriggeringPolicy size="20MB" />
59 
60             <!-- 最多保留文件数 -->
61 
62             <DefaultRolloverStrategy max="20"/>
63 
64         </RollingFile>
65 
66     </appenders>
67 
68     
69 
70     <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
71 
72     <loggers>
73 
74         <!--建立一个logger,此logger监听name对应的包名下的日志输出,level表示日志级别-->
75 
76         <Logger name="com.testlog" level="trace"
77 
78             additivity="true">
79 
80             <AppenderRef ref="RollingFile" />
81 
82         </Logger>
83 
84         <!--建立一个默认的root的logger-->
85 
86         <Root level="error">
87 
88          <!-- 在root中关联appender才会在对应的位置输出日志,定义一个输出到文件的appender也必须关联到此处才会保存日志到文件 -->
89 
90             <AppenderRef ref="Console" />
91 
92         </Root>
93 
94     </loggers>
95 
96 </configuration>

(4)测试:

package` `cn.zifangsky.controller;`  `import` `org.apache.log4j.Logger;` `import` `org.springframework.stereotype.Controller;` `import` `org.springframework.web.bind.annotation.RequestMapping;`  `@Controller` `public` `class` `TestController {` `  ``private` `static` `Logger logger = Logger.getLogger(TestController.``class``);` `  ` `  ``@RequestMapping``(``"/test.html"``)` `  ``public` `void` `test(){` `    ``logger.info(``"info测试"``);` `    ``logger.debug(``"debug测试 "``);` `    ``logger.error(``"error测试"``);` `  ``}` `}

控制台输出如下:

[INFO ] 2016-11-06 18:01:28,000 method:cn.zifangsky.controller.TestController.test(TestController.java:13)` `info测试` `[DEBUG] 2016-11-06 18:01:28,007 method:cn.zifangsky.controller.TestController.test(TestController.java:14)` `debug测试 ` `[ERROR] 2016-11-06 18:01:28,007 method:cn.zifangsky.controller.TestController.test(TestController.java:15)` `error测试

debug.log文件:

2016-11-06 18:01:28 [ http-apr-9180-exec-10:0 ] - [ INFO ] info测试` `2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ DEBUG ] debug测试 ` `2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ ERROR ] error测试

error.log文件:

2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ ERROR ] error测试
:01:28,007 method:cn.zifangsky.controller.TestController.test(TestController.java:15)` `error测试

debug.log文件:

2016-11-06 18:01:28 [ http-apr-9180-exec-10:0 ] - [ INFO ] info测试` `2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ DEBUG ] debug测试 ` `2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ ERROR ] error测试

error.log文件:

2016-11-06 18:01:28 [ http-apr-9180-exec-10:7 ] - [ ERROR ] error测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值