当前位置:网站首页>Log4j的使用
Log4j的使用
2022-07-17 05:08:00 【qq_42042158】
什么是Log4j?
- Log4j是Apache的一 一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、 GU|组件
- 我们也可以控制每一条日志的输出格式;
- 通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
- 通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
1、先导入log4j的包
pom文件中导入依赖
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2、编写配置文件 log4j.properties
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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
### set log levels ###
log4j.rootLogger = DEBUG,Console,File
### 输出到控制台 ###
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}]-%l:%m%n
### 输出到日志文件 ###
log4j.appender.File=org.apache.log4j.RollingFileAppender
log4j.appender.File.File=${project}src\\main\\resources\\app.log
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.Threshold=ALL
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sq1.PreparedStatement=DEBUG
3、配置log4j为日志的实现
在mybatis的配置文件中设置日志工厂为log4j
<settings>
<!-- 指定MyBatis所用日志的具体实现,使用LOG4J -->
<setting name="logImpl" value="LOG4J" />
</settings>
完成了这两个步骤这后,我们就可以象在application开发中一样在web application任何地方应用log4j了。下面是在javabean中的应用的一个例子。
import org.apache.log4j.Logger;
public class InfoForm
{
static Logger logger = Logger.getLogger(InfoForm.class);
protected String title;
protected String content;
public InfoForm() {
}
public void setTitle(Object value)
{
logger.debug("nepalon:title = " + title);
title = value;
}
public String getTitle()
{
logger.debug("nepalon:title = " + title);
return title;
}
public void setContent(String value)
{
content = value;
logger.debug("nepalon: content() = " + content);
}
public String getContent()
{
logger.debug("nepalon: content = \n" + content);
return content;
}
}
边栏推荐
- OpenDDS的QoS和自定义QoS(校时TimingQosPolicy)
- Internship project 2 - Homepage configuration - my data module
- 【Es6】forEach,for...in ,for...of专栏,让你通过项目案例快速分辨各种for语句的使用方式及区别(完整版)内部有详细注释
- Case summary of rotation chart moving speed (constant speed, slow motion)
- Two methods of obtaining URL parameters and various methods of obtaining location objects
- 645. 错误的集合
- 父组件加scoped有时也会影响子组件
- 手把手教你复现Log4j2核弹级漏洞
- 【C语言—零基础_学习_复习_第五课】基本运算符的运算性质
- CityEngine 三维管道建模教程
猜你喜欢

MapBox 加载本地离线地形

645. 错误的集合

Addition and removal of cesium geojson data

Installation and fast use of Mongo DB stand-alone version

ArcMap 创建常量栅格并镶嵌至新栅格

Wechat applet cloud development and use method-1

C语言初学者之初识代码专项练习

ThreadLocal thread safety example and its principle

【LeetCode——编程能力入门第一天】基本数据类型[在区间范围内统计奇数数目/去掉最低工资和最高工资后的工资平均值)

百度地图 实现 热力图
随机推荐
(elaborate) ES6 remaining parameters, ES6 built-in objects, template string content (detailed example Dictionary) and practical cases of flexible use of the project
【C语言—零基础第六课】输入输出语句格式与复合语句
Nacos配置管理
获取URL参数的两种方法及location对象的各项获取方式
PAT乙级1017: A除以B
学习C语言第二天
Addition and removal of cesium geojson data
Uniapp uses uview to realize folding panel
Class object automatic injection attribute operation tool
实习项目3-更改所有者
Flex弹性布局
JS native object plus attributes
热更新及其原理
Case summary of rotation chart moving speed (constant speed, slow motion)
Es6 真实案例解构(多维数组对象)全新案例:
2020-10-22
RK356x U-Boot研究所(命令篇)3.4 mem内存相关命令的用法
单臂路由配置
MySQL optimization
基于PaddleOCR解决文本检测训练模型与inference模型预测效果不一致的问题