Tomcat下log4j设置文件路径和temp目录
转自:http://www.cnblogs.com/dkblog/archive/2007/07/27/1980873.html
在Web应用中的如何设置日志文件的路径呢?最笨的方法是写绝对路径,但很不方便。
而Spring的做法是使用一个Servlet Listener,在WebContainer启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用$大括号myAppfuse.root大括号 来表示刚刚设进去的系统变量:
log4j.appender.logfile.File=$大括号myAppfuse.root大括号/logs/mylog.log 在Web.xml中配置语句如下:
<!--如果不设,默认为web.root,但最好设置,以免项目间冲突-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myappfuse.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
如果设置为:
#这样是当直接启动tomcat时会自动在tomcat的自有目录logs下生成mylog.log(推荐)
log4j.appender.logfile.File=../logs/mylog.log
#这样是当直接启动tomcat时会自动在tomcat的自有目录bin下生成mylog.log(如果是在eclipse启动tomcat则在eclipse目录下生成mylog.log)
log4j.appender.logfile.File=mylog.log
#在tomcat里运行可以这样写,会自动在tomcat的自有目录logs下生mylog.log(推荐)
log4j.appender.R.File=$大括号catalina.base大括号/logs/mylog.log
===================================
另外一种方式,自己设置目录:
首先设置环境变量(跟CATALINA_BASE类似)CATALINA_LOG=任意目录(如:D:\log);
windows下在catalina.bat里找到 -Dcatalina.base="%CATALINA_BASE%" ,在其前面加上
-Dcatalina.log="%CATALINA_LOG%"
linux下在catalina.sh里找到-Dcatalina.base="$CATALINA_BASE" \,在其上面加上-Dcatalina.log="$CATALINA_LOG" \
在log4j里就可以这样写了log4j.appender.R.File=$/logs/log_webdisk_log4j.log
在tomcat的logging.properties里也可以改1catalina.org.apache.juli.FileHandler.directory = $/logs
....
=================================
tomcat 的temp目录设置:
一.是直接设置环境变量CATALINA_TMPDIR完成。
二.是到catalina.bat(catalina.sh)去修改。
windows:
if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
set CATALINA_TMPDIR=%CATALINA_BASE%\temp
:gotTmpdir
linux:
if [ -z "$CATALINA_TMPDIR" ] ; then
# Define the java.io.tmpdir to use for Catalina
CATALINA_TMPDIR="$CATALINA_BASE"/temp
fi
Tomcat下log4j设置文件路径和temp目录的更多相关文章
- log4j2.xml日志文件设置文件路径
笔者最近的项目里使用了spring,spring通过web.xml配置监听器,在web启动时web.root系统变量,以供其他变量使用,例如 在属性文件里使用${web.root}以取得完整路径,项目 ...
- java 递归获取一个目录下的所有文件路径
还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- linux复制指定目录下的全部文件到另一个目录中
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- Nginx中的root&alias文件路径及索引目录配置详解
这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下 root&alias文件路径配置ng ...
- log4j日志文件路径设置
假设有如下标准化的目录结构: $HOME |-- log |-- conf |-- bin |-- lib |-- data jar包放在lib目录,启动脚本放在bin目录,日志文件放在log目录,配 ...
- 【tomcat】Web环境(tomcat)下新增一个访问路径(虚拟路径)
在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:(在server.xml最好不要添加中文注释,在有些操作系统会启动失败) <Context docBase ...
- MAC与windows下打开当前文件路径的命令行(终端)
MAC 下文件夹与终端: 1.打开当前路径的终端窗口方法: ①直接拖动要打开的文件夹到终端 ②打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文 ...
- [MAC] Mac OS X下快速复制文件路径的方法
在windows上复制当前目录的路径有一个特别方便的方式,只需要用鼠标点击路径栏,它就会自动变成像”D:\Downloads\tmp”这样的路径,如果要复制文件路径,只需要将目录路径和文件名拼接起来即 ...
随机推荐
- 个人知识管理利器wiz
Personal Knowledge Management PKM(Personal Knowledge Management),中文译为个人知识管理. 个人知识管理是一种新的知识管理的理念和方法,能 ...
- 如何在CMD下运用管理员权限
方法一:鼠标右键 这个方法比较比较普通, 点开开始找到cmd,右击鼠标“以管理员身份运行(A)”这样调用就是管理员的权限: 方法二:快捷模式 在点开win+R后,选择“以管理员身份运行”,然后确定:可 ...
- C#中转义字符
编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行. C#中转义字符分2中,一种是\,一种是@. @符号在C#中有两个作用作用1.在字符串的前面加@表示取消字符串中的转 ...
- Testlink1.9.14介绍及使用
Testlink简介 今天在为部门培训testlink的使用,顺便把相关片段记录下来. TestLink是一款开源的测试管理工具,主要用于进行测试过程的管理,通过使用TestLink提供的功能,可以 ...
- 国内下载比较快的Maven仓库镜像
#收集的比较快的maven仓库 http://maven.wso2.org/nexus/content/groups/public/ http://jcenter.bintray.com/http:/ ...
- Centos 7 意外断电如何处理
拔U盘的时候,不小心碰到了主机上的开机键-- 还好默认的响应动作是睡眠-- 还不知道 CentOS 怎么样应对意外断电呢?!
- SASS相关
1.安装ruby http://rubyinstaller.org/downloads/ 2.安装SASS gem sources --remove https://rubygems.org/ gem ...
- 采用Jenkins搭建持续集成环境
Jenkins介绍 Jenkins是一个CI工具.它可以根据设定持续定期编译,运行相应代码:运行UT或集成测试:将运行结果发送至邮件,或展示成报告... 这样做的最终目的是: 让项目保持健康的状态.如 ...
- C# IDisposable的理解
C#里可以嵌入非托管代码,这就涉及到了这些代码资源的释放.以前总是看到别人的代码里那么写,也没有好好想想为什么,今天看了书,总结一下. 资源释放分为两种: 托管的 非托管的 两者的释放方式不一致: 没 ...
- Hibernate——脏检查和缓存清理机制
Session到底是如何进行脏检查的呢? 当一个Customer对象被加入到Session缓存中时,Session会为Customer对象的值类型的属性复制一份快照.当Session清理缓存时,会先进 ...