社区
Java SE
帖子详情
log4j,${catalina.home}是在哪定义的?
believefym
2011-02-14 03:24:29
一个appender的定义:<param name="File" value="${catalina.home}/logs/ssal/ssal-web.log" />
这个${catalina.home}在哪定义的呢?
...全文
14392
15
打赏
收藏
log4j,${catalina.home}是在哪定义的?
一个appender的定义: 这个${catalina.home}在哪定义的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
husband8375
2011-02-15
打赏
举报
回复
在系统的环境变量里面设定。。。。
Inhibitory
2011-02-14
打赏
举报
回复
在WEB-INF/classes/log4j.properties,如下
#A4 Print message into file
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.File=${catalina.base}/webapps/mlm/logs/hb-log ####这一行中使用了####
log4j.appender.A4.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[HB: %-5p] %d{yyyy-MM-dd HH:mm:ss} %l: %m%n
Sunkien
2011-02-14
打赏
举报
回复
如果没有错的话就应该是 环境变量
believefym
2011-02-14
打赏
举报
回复
[Quote=引用 6 楼 preferme 的回复:]
JVM在启动的时候,会将环境变量,转换到 系统属性 里面。
可以通过System.getProperty("");来获取。
catalina.home属性,就是运行tomcat的JVM的系统属性之一。
一般是由操作系统的环境变量CATALINA_HOME转换而来。
如果操作系统没有设置,tomcat会采用默认设置来填充该内容。
[/Quote]
老兄说的没错,不过不是我要问的点。。。
believefym
2011-02-14
打赏
举报
回复
[Quote=引用 5 楼 dracularking 的回复:]
引用 2 楼 believefym 的回复:
引用 1 楼 dongqdonglin 的回复:
tomcat?的话就在tomcat 看看!!!
直接跑的unit test,没用tomcat
而且把${}括号里面的东东随便改好像也不会报错,奇怪。。。。
你这appender实际上是不是根本没用到?
[/Quote]
实际上用到了,只不过路径是在根目录下,我的windows系统是在C盘下面。。。
believefym
2011-02-14
打赏
举报
回复
我看了一下log4j相关的一源码
的确是取系统属性,System.getProperty(..., null)
当该属性没有定义的时候,也就是返回为nul的时候,前面那个变量${...}会被忽略,也就是直接用的后面的路径
所以即使随便修改那个变量,也没报错,后来发现始终在C盘根目录下建了这个log文件
当然,如果机器存在权限访问的问题,不能任意在C盘下,或者根目录下建文件的时候,就会出错了
冰思雨
2011-02-14
打赏
举报
回复
楼主看看tomcat/bin下面的catalina.bat或者相关的几个bat文件里面,
就有 CATALINA_HOME 属性的设置,当然还有JAVA_HOME等几个属性的设置。
这些环境变量,在JVM启动的时候,都会被转换成 系统属性(键值对的形式保存)。
冰思雨
2011-02-14
打赏
举报
回复
JVM在启动的时候,会将环境变量,转换到 系统属性 里面。
可以通过System.getProperty("");来获取。
catalina.home属性,就是运行tomcat的JVM的系统属性之一。
一般是由操作系统的环境变量CATALINA_HOME转换而来。
如果操作系统没有设置,tomcat会采用默认设置来填充该内容。
dracularking
2011-02-14
打赏
举报
回复
[Quote=引用 2 楼 believefym 的回复:]
引用 1 楼 dongqdonglin 的回复:
tomcat?的话就在tomcat 看看!!!
直接跑的unit test,没用tomcat
而且把${}括号里面的东东随便改好像也不会报错,奇怪。。。。
[/Quote]
你这appender实际上是不是根本没用到?
火龙果被占用了
2011-02-14
打赏
举报
回复
在系统属性里面:
System.getProperty("catalina.home");
madFatso
2011-02-14
打赏
举报
回复
http://flashdream8.javaeye.com/blog/698087
believefym
2011-02-14
打赏
举报
回复
[Quote=引用 1 楼 dongqdonglin 的回复:]
tomcat?的话就在tomcat 看看!!!
[/Quote]
直接跑的unit test,没用tomcat
而且把${}括号里面的东东随便改好像也不会报错,奇怪。。。。
dongqdonglin
2011-02-14
打赏
举报
回复
tomcat?的话就在tomcat 看看!!!
【知识库】
cat
a
lin
a.
home
和
cat
a
lin
a.base 怎么寻找?
定义
?做什么用的? tom
cat
1 查找:
lin
ux 系统 通过两个命令: jcmd 找到pid jinfo pid | grep
cat
a
lin
a 例如: 2
定义
:
cat
a
lin
a.base : 项目的工作目录Name of the system property containing the tom
cat
instance installation path;
cat
a
lin
a.
home
: 公用库目...
tom
cat
环境变量参数
cat
a
lin
a.
home
和
cat
a
lin
a.base的设置位置
tom
cat
环境变量参数
cat
a
lin
a.
home
和
cat
a
lin
a.base的设置位置 由于我们在
Log4j
的配置中引入了系统属性${
cat
a
lin
a.base},下面讲一下如何设置
cat
a
lin
a.base,本质上就是在启动Tom
cat
的时候,给启动命令或脚本增加参数: 可以参考:操作系统的环境变量和Java系统属性 1.第三方Tom
cat
在Tom
cat
安装路径/bin下面的
cat
a
lin
a.bat或者相关的几个bat文件里面, 就有
CAT
A
LIN
A_BASE 属性的设置,当然还有JAVA_H
windows下
Log4j
2打印日志报错 ERROR Unable to create file ${sys:
cat
a
lin
a.
home
}/logs/upload.log
windows下
Log4j
2打印日志报错 Connected to the target VM, address: '127.0.0.1:52594', transport: 'socket' 2019-11-28 17:53:24,842 main ERROR Unable to create file ${sys:
cat
a
lin
a.
home
}/logs/upload.log java.i...
tom
cat
详解 三
cat
a
lin
a.
home
和
cat
a
lin
a.base
log4j
.properties 文件的配置内容如下:
log4j
.appender.stdout=org.apache.
log4j
.ConsoleAppender
log4j
.appender.stdout.layout=org.apache.
log4j
.PatternLayout
log4j
.appender.stdout.layout.ConversionPattern=%d
log4j
2解决tom
cat
中
cat
a
lin
a.out文件过大的问题
网上可以很容易搜到解决此问题的方案,基本为两种,一种修改tom
cat
的
cat
a
lin
a.sh文件,另外一种是通过
log4j
,但是网上的是配置的
log4j
1的 先来看看项目最开始写的
log4j
2.xml <?xml version="1.0" encoding="UTF-8"?>...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章