log4j中配置日志文件几种方式
来源:互联网 发布:好看的男同网络剧电影 编辑:程序博客网 时间:2024/06/05 01:03
在配置日志路径时,碰到了一个小问题,就是配置路径能有几种,自己试了一下,与大家分享。
1、绝对路径方式
使用绝对路径那就不用说什么了,直接输出到配置路径
log4j.appender.infofile.File = D:/logs/info.log
2、使用System设置好日志根路径
log4j.appender.logfile.File=${WORKDIR}/logs/info.log
其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setProperty设置好根路径。
3、可以使用服务器环境变量 log4j的配置文件支持服务器的vm的环境变量,格式类似${catalina.home} ${catalina.base}
log4j.appender.logfile.File=${catalina.base}logs/info.log
假如使用Tomcat中间件容器,那么日志存放在Tomcat的日志下
4、通过servlet初始化init()方法中加载file属性实现相对路径
:做一个servlet,在系统加载的时候,就把properties的文件读到一个properties文件中.那个file的属性值(我使用的是相对目录)改掉(前面加上系统的根目录),让后把这个properties对象设置到propertyConfig中去,这样就初始化了log的设置.在后面的使用中就用不着再配置了 一般在我们开发项目过程中,log4j日志输出路径固定到某个文件夹,这样如果我换一个环境,日志路径又需要重新修改,比较不方便,目前我采用了动态改变日志路径方法来实现相对路径保存日志文件 (1).在项目启动时,装入初始化类:
public class Log4jInit extends HttpServlet {
static Logger logger = Logger.getLogger(Log4jInit.class);
public Log4jInit() {
}
public void init(ServletConfig config) throws ServletException {
String prefix = config.getServletContext().getRealPath("/");
String file = config.getInitParameter("log4j");
String filePath = prefix + file;
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(filePath);
props.load(istream);
istream.close();
//toPrint(props.getProperty("log4j.appender.file.File"));
String logFile = prefix + props.getProperty("log4j.appender.file.File");//设置路径
props.setProperty("log4j.appender.file.File",logFile);
PropertyConfigurator.configure(props);//装入log4j配置信息
} catch (IOException e) {
toPrint("Could not read configuration file [" + filePath + "].");
toPrint("Ignoring configuration file [" + filePath + "].");
return;
}
}
public static void toPrint(String content) {
System.out.println(content);
}
}
5、使用Spring提供的日志配置方法
web.xml添加如下代码:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>project</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param><param-name>webAppRootKey</param-name><param-value>project</param-value></context-param><context-param><param-name>log4jConfigLocation</param-name><param-value>WEB-INF/classes/log4j.properties</param-value></context-param><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
webAppRootKey: 配置项目的别名,上面配置别名为project。若你部署的项目不在tomcat中的话这个可以忽略,因为tomcat没为每个应用配置不同的webappRoot属性,所以如果出现两个或以上相同的应用属性名的话就会报错了。
然后修改log4j.properties的配置,把日志文件输出的路径配置修改为:
log4j.appender.loginfo.File=${project}WEB-INF/logs/Prinfo.log
loginfo是我的appender命名。 ${project}是使用上述web.xml中的应用别名从而获取应用的绝对路径。
注:若不需要配置应用别名的话,即没配置webAppRootKey。可以直接这么写:
log4j.appender.loginfo.File=${webapp.root}WEB-INF/logs/info.log
webapp.root为默认属性。若有配置webAppRootKey的话就被覆盖。
- log4j中配置日志文件几种方式
- log4j中配置日志文件几种方式
- log4j中配置日志文件几种方式(转载)
- 在log4j中,输出另一个日志文件的配置方式
- log4j中配置日志文件相对路径
- log4j中配置日志文件相对路径
- log4j中配置日志文件相对路径
- log4j中配置日志文件相对路径
- log4j中配置日志文件相对路径
- log4j中配置日志文件相对路径
- Log4j中配置日志文件相对路径
- Log4j 4种日志文件生成方式
- Log4j日志文件配置
- Log4J日志文件配置
- log4j日志文件配置
- Log4j日志文件配置
- log4j 日志文件配置
- Log4j日志文件配置
- 虚拟化并非私有云
- Hql的select 语句返回Ilist<object[]>类型,如何转换为映射类型
- HDU 1180 诡异的楼梯
- A. Lucky Division
- 中国围棋借应氏杯而涅槃
- log4j中配置日志文件几种方式
- 广义表建立二叉树
- apk文件反编译工具和步骤小结
- 新手的一些废话
- 百度称政府网站最易遭攻击
- Perl LWP 模块安装及遇到的问题
- Ubuntu12.04 64位下打开windows txt 乱码的解决方式
- 网桥实现与分析
- ServletContextListener作用