问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

log4j怎么配置日志输出路径

发布网友 发布时间:2022-04-22 16:47

我来回答

1个回答

热心网友 时间:2023-07-17 10:23

以DailyRollingFileAppender 为例:假设每天一个日志文件
有以下设置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=app.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t] - %m%n

此时生成日志文件将位于tomcat的bin目录下,如要将日志文件保存在 :根目录/web-info/logs/下,个人有以下4种解决方案:
1 绝对路径
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/项目/WEB-INF/logs/app.log
但这种写法灵活性很差

以下3中使用相同的设置原理: jvm的环境变量
2:spring的Log4jConfigListener
通过以下配置:
< context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
< listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
...
log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
...
来解决
2:使用已有jvm变量:
例如:
log4j.appender.logfile.File=${user.home}/logs/app.log
日志将位于:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己设置目录,也就是在项目启动时通过System.setProperty设置
通过实现ServletContextListener来解决:例如

public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
//System.out.println("log4jdir:"+log4jdir);
System.setProperty(log4jdirkey, log4jdir);
}
}
web.xml配置:

<listener>
<listener-class>com.log4j.log4jlistener</listener-class>
</listener>

log4j.prtperties 配置:
log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
来解决。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 污水处理工艺选择需要考虑哪些因素 404 Not Found 污水处理的工艺流程是什么? log4j配置文件中常看到 %-4r %-5p 是什么意思 污水处理的6个基本步骤 log4j 配置文件什么时候被加载 污水处理工艺的确定 如何加载log4j的xml配置文件 论述城市污水厂处理工艺原理 如何在spring 配置文件中配置log4j.xml 如何查看 log4j 加载 哪个 配置 log4j在java的web项目中怎么用的,如何配置等等。。 java log4j放在其他目录怎么配置 关于java读取jar包内log4j配置文件 log4j配置之后报错如何解决? log4j文件配置的属性有哪些 如何查找log4j加载配置文件的位置 【配置文件】大家来谈谈这个log4j到底有什么用? log4j.properties 的作用是什么?求详解 如何编写log4j.properties文件,配置日志信息 求一篇关于污水处理的小论文1000字左右 log4j2怎么寻找配置文件的 如何通过配置log4j.xml来打印指定类或指定级别的日志信息 工厂污水处理论文 污水处理方法有哪些? 工艺废水处理方法有那些? 求污水处理厂工艺流程 生活中污水处理论文 污水处理怎样除磷 污水处理流程 污水处理对我们的意义? 污水处理对我们有什么意义? 金门高粱酒58度能放几年 1993年金门高梁56度750价格怎么样? 58度金门高粱酒喝了6两会中毒吗 金门高粱酒58度,,,,,,,,,,红葡萄酒保质期十五年,自藏十一点了还能喝吗? 京东金门高粱酒58度是台湾产吗 金门高粱酒的度数是多少? 金门高粱酒58度酒的产品标准号怎么没有 如何辨别真假进口金门高粱酒