javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

时间:2022-12-22 17:24:39
谁给帮忙看下我要实现如下功能,路径要怎么写呢!其实目的就是要实现
当我将JavaWeb项目部署到tomcate上时,我可以正常读取到JavaWeb项目里的文件,也可以将生成的日志文件存放到JavaWeb项目制定的文件夹下!即我进入tomcate里面查看的时候可以在该项目的文件下查看到相应的日志文件!

javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

15 个解决方案

#1


如果有什么建议也请帮忙说下,只要我进入tomcate里面对应的Web项目文件夹下可以看到相应的日志文件就行!
还有Web项目里的文件可以在部署到tomcate上时还存在,并且可以读取!主要是路径该如何写呢!麻烦各位给看下了!

#2


怎么没有人呢?

#3


有人的,这个这上面说不清楚。

#4


引用 3 楼 wuhongjun126 的回复:
有人的,这个这上面说不清楚。

javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题
给我说下路径该怎么写就行了!

#5



log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

#6


引用 5 楼 shadowsick 的回复:

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

我为什么使用后是生成在c:根目录下了,而不是我tomcate上该项目了里面呢?

#7


引用 6 楼 n_e_e_d 的回复:
Quote: 引用 5 楼 shadowsick 的回复:


log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

我为什么使用后是生成在c:根目录下了,而不是我tomcate上该项目了里面呢?


输出System.getProperty("webapp.root")这个值看看

#8


request.getServletContext().getRealPath("/");

#9


引用 8 楼 u011431550 的回复:
request.getServletContext().getRealPath("/");

这句话是什么意思呢?在哪里写呢?

#10


使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

#11


引用 10 楼 vtopqx 的回复:
使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

那我在log4j的配置文件里路径要怎么传过去呢!

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log   ????
log4j.appender.logfile.MaxFileSize=10240KB

#12


#13


引用 11 楼 n_e_e_d 的回复:
Quote: 引用 10 楼 vtopqx 的回复:

使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

那我在log4j的配置文件里路径要怎么传过去呢!

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log   ????
log4j.appender.logfile.MaxFileSize=10240KB

log4j中的不需要转了,你在程序代码中把路径转向log4j中的所配置的目录下就可以了。
getResource(".")只是或者当前class文件的目录,你也可以获取${webapp.root}/logger下的目录的

#14


结贴给分了,我目前是这样写的:

##login的日志记录文件
log4j.logger.login= DEBUG, login
log4j.appender.login=org.apache.log4j.FileAppender
log4j.appender.login.File=${catalina.base}/webapps/HttpSocket/HttpSocketLog/loginLog/login.log
log4j.appender.login=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.login.DatePattern = '.'yyyy-MM-dd 
log4j.appender.login.layout=org.apache.log4j.PatternLayout
log4j.appender.login.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %M %p %m %n
log4j.additivity.login = false


#15


request.getServletContext().getRealPath("/文件夹名称");得到文件夹的路径。

#1


如果有什么建议也请帮忙说下,只要我进入tomcate里面对应的Web项目文件夹下可以看到相应的日志文件就行!
还有Web项目里的文件可以在部署到tomcate上时还存在,并且可以读取!主要是路径该如何写呢!麻烦各位给看下了!

#2


怎么没有人呢?

#3


有人的,这个这上面说不清楚。

#4


引用 3 楼 wuhongjun126 的回复:
有人的,这个这上面说不清楚。

javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题
给我说下路径该怎么写就行了!

#5



log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

#6


引用 5 楼 shadowsick 的回复:

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

我为什么使用后是生成在c:根目录下了,而不是我tomcate上该项目了里面呢?

#7


引用 6 楼 n_e_e_d 的回复:
Quote: 引用 5 楼 shadowsick 的回复:


log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log
log4j.appender.logfile.MaxFileSize=10240KB

直接生成在项目webroot目录下的logger文件夹

我为什么使用后是生成在c:根目录下了,而不是我tomcate上该项目了里面呢?


输出System.getProperty("webapp.root")这个值看看

#8


request.getServletContext().getRealPath("/");

#9


引用 8 楼 u011431550 的回复:
request.getServletContext().getRealPath("/");

这句话是什么意思呢?在哪里写呢?

#10


使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

#11


引用 10 楼 vtopqx 的回复:
使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

那我在log4j的配置文件里路径要怎么传过去呢!

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log   ????
log4j.appender.logfile.MaxFileSize=10240KB

#12


#13


引用 11 楼 n_e_e_d 的回复:
Quote: 引用 10 楼 vtopqx 的回复:

使用test1.class.getResource(".")获取当前class所在的目录,以此类推找到你需要的目录!
javaWeb项目部署到tomcate时读取文件路径和log4j日志文件存放路径的问题

那我在log4j的配置文件里路径要怎么传过去呢!

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logger/web.log   ????
log4j.appender.logfile.MaxFileSize=10240KB

log4j中的不需要转了,你在程序代码中把路径转向log4j中的所配置的目录下就可以了。
getResource(".")只是或者当前class文件的目录,你也可以获取${webapp.root}/logger下的目录的

#14


结贴给分了,我目前是这样写的:

##login的日志记录文件
log4j.logger.login= DEBUG, login
log4j.appender.login=org.apache.log4j.FileAppender
log4j.appender.login.File=${catalina.base}/webapps/HttpSocket/HttpSocketLog/loginLog/login.log
log4j.appender.login=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.login.DatePattern = '.'yyyy-MM-dd 
log4j.appender.login.layout=org.apache.log4j.PatternLayout
log4j.appender.login.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %M %p %m %n
log4j.additivity.login = false


#15


request.getServletContext().getRealPath("/文件夹名称");得到文件夹的路径。