转自: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目录的更多相关文章

  1. log4j2.xml日志文件设置文件路径

    笔者最近的项目里使用了spring,spring通过web.xml配置监听器,在web启动时web.root系统变量,以供其他变量使用,例如 在属性文件里使用${web.root}以取得完整路径,项目 ...

  2. java 递归获取一个目录下的所有文件路径

    还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...

  3. linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹

    linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...

  4. linux复制指定目录下的全部文件到另一个目录中

    linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...

  5. Nginx中的root&alias文件路径及索引目录配置详解

    这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下     root&alias文件路径配置ng ...

  6. log4j日志文件路径设置

    假设有如下标准化的目录结构: $HOME |-- log |-- conf |-- bin |-- lib |-- data jar包放在lib目录,启动脚本放在bin目录,日志文件放在log目录,配 ...

  7. 【tomcat】Web环境(tomcat)下新增一个访问路径(虚拟路径)

    在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:(在server.xml最好不要添加中文注释,在有些操作系统会启动失败) <Context docBase ...

  8. MAC与windows下打开当前文件路径的命令行(终端)

    MAC 下文件夹与终端: 1.打开当前路径的终端窗口方法: ①直接拖动要打开的文件夹到终端 ②打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文 ...

  9. [MAC] Mac OS X下快速复制文件路径的方法

    在windows上复制当前目录的路径有一个特别方便的方式,只需要用鼠标点击路径栏,它就会自动变成像”D:\Downloads\tmp”这样的路径,如果要复制文件路径,只需要将目录路径和文件名拼接起来即 ...

随机推荐

  1. 从一般分布式设计看HDFS设计思想与架构

     要想深入学习HDFS就要先了解其设计思想和架构,这样才能继续深入使用HDFS或者深入研究源代码.懂得了"所以然"才能在实际使用中灵活运用.快速解决遇到的问题.下面这篇博文我们就先 ...

  2. 写一个Redis封装类

    打算自己封装一个Redis操作类,方便使用,且有一定log记录.Redis的封装思路:基于Redis类进一步封装 一般属性 单例 (配置参数从配置文件中读取还是写死?考虑多配置之间切换) 常规操作根据 ...

  3. 结构-行为-样式-Javascript笔记

    一.console.dir()可以显示一个对象所有的属性和方法. 二.递归遍历一个数据集合: A.数据: {  "menu": [    {      "menuId&q ...

  4. C语言之进制

    进制 一种计数的方式.侧重点在于计数的时候是逢多少进一. 1)      C语言可以识别的进制 二进制 每一位. 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 在C语言中,写 ...

  5. 【微信开发】微信公众平台接入及绑定提示“请求URL超时”的解决办法

    成为微信开发者的第一步--微信公众平台接入 第一步:填写服务器配置 在开发->基本配置处启用服务器配置.修改配置 其中URL是开发者用来接收微信消息和事件的接口URL. Token可由开发者可以 ...

  6. [ios-必看] 国人当自强:两岸三地在线编程学习网站大搜罗 [转]

    http://blog.csdn.net/lyy_whg/article/details/17350923 说到国内的在线编程学习网站,很多人都是一脸茫然,即使是资深开发者也是如此.在许多人眼中,尽管 ...

  7. mvc架构和mvp架构

    mvc,mvp其实是复合模式,是多个设计模式的组合:将多个模式结合起来形成一个框架,已解决一般性问题. mvc: 既然mvc是复合模式,那么是由哪些设计模式组合的呢? 观察者设计模式:view和con ...

  8. linux 安装 Chrome

    一.添加PPA 从Google Linux Repository(http://www.google.com/linuxrepositories/)下载安装Key,或把下面的代码复制进终端,回车,需要 ...

  9. 【SQL】T-SQL基本语法复习

    数据库基本的几个对象 数据表.视图.存储过程.索引.触发器.函数 增删改查 Insert into test(name,sex,ago) values ('陈三','男',20) Update tes ...

  10. C# 利用ajax实现局部刷新

    C#所有runat="server"的控件都会造成整个界面的刷新,如果想实现局部刷新,可以利用ajax. 需要加入的控件有ScriptManager和UpdatePanel,可以实 ...