百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

log4j的详细配置

yuyutoo 2025-01-09 17:07 2 浏览 0 评论

### 设置日志级别 ###
log4j.rootLogger = error,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 = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
 
### 输出到日志文件 ###
 
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${webApp.root}/logs/log.log
log4j.appender.D.encoding=gb2312
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
 
### 保存异常信息到单独文件,每天自增一个日志文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = ${webApp.root}/logs/error.log
log4j.appender.E.encoding=gb2312
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
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

加载log4j.properties配置文件需要在web.xml中配置一些信息,配置如下:

<context-param>
     <param-name>log4jConfigLocation</param-name>
     <param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
     <param-name>log4jRefreshInterval</param-name>
     <param-value>60000</param-value>
</context-param>

File文件的路径配置方法:
1.使用绝对路径,把日志文件放到一个固定的位置,例如D:/logs/log.log。
2.使用环境变量:

A:

{user.home}/logs/log.log是把日志文件放到个人用户目录下,系统不同位置可能会有差异,以我的电脑系统(win10)和个人配置为例,${user.home}/logs/log.log代表C:\Users\kzhzhang\logs\log.log。

B:

{catalina.home}/logs/error.log是把日志文件放到tomcat第一层目录下。

C:

{webApp.root}/logs/error.log是把日志文件放到发布到tomcat下的项目内部,使用这个变量需要在web.xml中配置一些信息,配置如下,

<context-param> 
     <param-name>webAppRootKey</param-name> 
     <param-value>webApp.root</param-value>  
</context-param>
<listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

3.设置一个监听器实现ServletContextListener,在项目启动的时候初始化日志保存目录:

public class Log4jListener implements ServletContextListener {
 
    public static final String log4jDir = "log4jdir";
 
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        String log4jdir = sce.getServletContext().getRealPath("/") + "logs\\";
        System.setProperty(log4jDir, log4jdir);
    }
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.getProperties().remove(log4jDir);
    }
 
}

在log4j.properties文件中使用log4jdir(变量名称可以随便命名,注意保持一致)变量配置日志文件位置,例如${log4jdir}/log.log,另外还需要在web.xml中配置监听器,配置如下:

<listener> 
     <listener-class>***.Log4jListener</listener-class> 
</listener>

ConversionPattern参数的格式含义

格式名 含义
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名

相关推荐

springBoot使用Log4j

添加依赖<dependency><groupId>org.springframework.boot</groupId><ar...

Log4j 严重漏洞修最新修复方案参考

CVE-2021-44228,原理上是log4j-core代码中的JNDI注入漏洞。这个漏洞可以直接导致服务器被入侵,而且由于“日志”场景的特性,攻击数据可以多层传导,甚至可以威胁到纯内网的服...

如何在Spring Boot中使用Log4j日志框架

SpringBoot是目前Java领域比较流行的一个应用程序开发框架,默认情况下使用的是SLF4J和Logback作为日志框架,但是在某些场景下,我们可能需要用到Log4j或Log4j2来满足一些特...

log4j的使用

初识log4jlog4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIXSyslog...

log4j的详细配置

###设置日志级别###log4j.rootLogger=error,stdout,D,E###输出到控制台###log4j.appender.stdout=org.apac...

深蹲时脚掌的打开弧度到底多少比较合适?

引子哈喽,大家晚上好,今天我还是给大家带来深蹲的小技巧。我们在之前的文章中,已经说过非常多关于深蹲的小技巧了,我想大家也已经知道了该如何去做一个正确的深蹲。今天我要给大家介绍一个经常被大家所忽略的技巧...

中杯vivo X90 对比超大杯X90 Pro+:京东方Q9和三星E6差距大吗?

X90标准版应该是大家目前最早能用到量产天玑9200处理器的一款手机了吧,根据蓝厂准则,想贪便宜肯定不能去线上买呀,线上买只是为了给低预算的朋友“分期”用的,根据线下渠道商提示:X90标准版目前已降价...

学习Geogebra重要的100条学习随笔(12)

角度①“0”:Alt+O;“π”:Alt+P;②GeoGebra默认计算都是使用弧度制;③携带度符号(°)的正常计算,但常量π/180会自动转为弧度。...

高中数学-三角函数

三角函数角的度量单位通常有两种,一种是角度制,另一种就是弧度制。...

数学与三角函数的基础用法和示例(一)

1.ABS函数说明返回数字的绝对值。一个数字的绝对值是该数字不带其符号的形式。语法ABS(number)...

折弯大圆弧每次折多少刀,折弯角度怎么计算

第一种方法如何折圆弧?(无模具时)如上图所示:板厚T=2MM,圆心角为90°1、先计算出弧长:弧长L=90°×3.14÷180°×中心层R59=92.632、选取折弯模具:上模用直剑刀,下模用8V(折...

高中数学里的角,和初中学的不太一样

同学们好,我是李状元数学课的李老师,讲人人都听得懂的高中数学课。经常有同学说起三角函数时会有点头疼,可是呢,三角函数其实是高中数学里比较基础的一部分,虽然应用非常广泛,但是一般都不会考察特别难的题目,...

PS办公技巧:如何更改圆角矩形的弧度?

应用场景下图PS文档中有3个完全相同的圆角矩形(当前所有的圆角半径均为10像素),每个圆角矩形单独占用一个图层。下面我们让第1个图层“圆角矩形上”维持原样不变方便对比观察,将第2个图层“圆角矩形中”的...

解读角度制与弧度制的基础知识(讲义稿)

一、角度制1、什么叫做角度制?我们在平面几何学里研究的角度制,规定周角的1/360度为一度的角。这种用单位来度量角的制度叫做角度制。2、怎样用量角器来测量角?角的大小经常用量角器来测量(1)、点重合,...

高中数学笔记——任意角,弧度制及相关公式

...

取消回复欢迎 发表评论: