log4j无法打印日志到指定文件

魔鬼_ 2015-12-11 05:48:28
1、环境:项目使用springmvc+batis+tomcat7
2、log4j.properties(/resources/log4j.properties,maven搭建)
配置信息:
#######################################################################
# Categories and levels
#######################################################################
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


#log4j.logger.com.ibatis=debug
#log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
#log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
#log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
#log4j.logger.java.sql.Connection=debug
#log4j.logger.java.sql.Statement=debug
#log4j.logger.java.sql.PreparedStatement=debug,stdout
log4j.rootCategory=file, ConApp
log4j.category.com.gzedu = debug
log4j.category.com.ibatis = debug
log4j.category.freemarker = error
log4j.category.org.springframework = info
log4j.category.com.opensymphony = info
log4j.category.org.apache = info
log4j.category.java.sql = debug

#######################################################################
# Appenders
#######################################################################

# ConApp is set to be a ConsoleAppender.
log4j.appender.ConApp=org.apache.log4j.ConsoleAppender
# ConApp uses PatternLayout.
log4j.appender.ConApp.layout=org.apache.log4j.PatternLayout
# Define Pattern
log4j.appender.ConApp.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss,SSS} %c.%t %m%n

# FileApp
#log4j.appender.FileApp=org.apache.log4j.RollingFileAppender
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern ='_'yyyy-MM-dd'.log'
#log4j.appender.FileApp.File=${project}WEB-INF/logs/log
log4j.appender.file.File=${webapp.root}/WEB-INF/logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=true

3、web.xml配置
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
4、tomcat下边只有这一个工程

5、问题:
设置的日志${webapp.root}/WEB-INF/logs/log.log 里面是空的(ps:使用绝对路径D:/tomcat-7.0.55/apache-tomcat-7.0.55/webapps/product/WEB-INF/logs/log.log也是无效的,eclipse控制台可以打印成功)
跪求万能的吧友解放。。。。。
...全文
3820 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
_南天北落 2015-12-12
  • 打赏
  • 举报
回复
引用 6 楼 wzq6578702 的回复:
[quote=引用 2 楼 my_God_sky 的回复:]
log4j.rootLogger=WARN,DAILY_ALL
log4j.appender.DAILY_ALL=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Threshold=ERROR
log4j.appender.DAILY_ALL.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY_ALL.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm} %-50.50c(%L) - %m%n%n
log4j.appender.DAILY_ALL.File=../logs/dispatch.log
不过还有个瑕疵就是 [log4j.appender.logfile.File=D:\\tomcat-7.0.55\\apache-tomcat-7.0.55\\logs\\log.log]这个地方必须使用绝对路径,我用【../logs/log.log】死活出不来log.log文件。。。。。[/quote] 可能是相对路径的问题。也许是在另一个文件下面。
魔鬼_ 2015-12-12
  • 打赏
  • 举报
回复
引用 2 楼 my_God_sky 的回复:
log4j.rootLogger=WARN,DAILY_ALL
log4j.appender.DAILY_ALL=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Threshold=ERROR
log4j.appender.DAILY_ALL.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY_ALL.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm} %-50.50c(%L) - %m%n%n
log4j.appender.DAILY_ALL.File=../logs/dispatch.log
不过还有个瑕疵就是 [log4j.appender.logfile.File=D:\\tomcat-7.0.55\\apache-tomcat-7.0.55\\logs\\log.log]这个地方必须使用绝对路径,我用【../logs/log.log】死活出不来log.log文件。。。。。
魔鬼_ 2015-12-12
  • 打赏
  • 举报
回复
引用 3 楼 my_God_sky 的回复:
log4j.rootLogger=WARN,DAILY_ALL 这个是必须的。是下面配置的要不要启用这个意思。 log4j.appender.DAILY_ALL=org.apache.log4j.DailyRollingFileAppender log4j.appender.Threshold=ERROR这个是什么等级需要打印 log4j.appender.DAILY_ALL.layout=org.apache.log4j.PatternLayout布局 log4j.appender.DAILY_ALL.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm} %-50.50c(%L) - %m%n%n打印格式 log4j.appender.DAILY_ALL.File=../logs/dispatch.log路径 protected static final Logger LOGGER = LoggerFactory.getLogger(*.class);定义 LOGGER。ERROR和log4j.appender.Threshold=ERROR定义等级一样 引包也要注意 import org.slf4j.Logger; import org.slf4j.LoggerFactory; 这2个包
这问题很奇怪, 我使用了log4j.rootCategory=DEBUG, stdout, logfile 然后再在下边配置文件就管用了,自定义的在打印日志文件那块有点奇怪,内置的stdout, logfile 管用 多谢 问题解决最后配置如下: log4j.rootCategory=DEBUG, stdout, logfile log4j.category.com.gzedu = debug log4j.category.com.ibatis = debug log4j.category.freemarker = error log4j.category.org.springframework = info log4j.category.com.opensymphony = info log4j.category.org.apache = info log4j.category.java.sql = debug log4j.appender.stdout=org.apache.log4j.ConsoleAppender # ConApp uses PatternLayout. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Define Pattern log4j.appender.stdout.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss,SSS} %c.%t %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender log4j.appender.logfile.File=D:\\tomcat-7.0.55\\apache-tomcat-7.0.55\\logs\\log.log #log4j.appender.FILE.File=E:\\mywork\\CFM_xfire\\src\\run_ #log4j.appender.file.DatePattern=yyyy_MM_dd'.log' log4j.appender.logfile.MaxBackupIndex=20 log4j.appender.logfile.MaxFileSize=20MB log4j.appender.logfile.Append=true log4j.appender.logfile.BufferSize=16384 log4j.appender.logfile.ImmediateFlush=true log4j.appender.logfile.BufferedIO=false log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
魔鬼_ 2015-12-12
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=E:\\mywork\\CFM_xfire\\src\\run.log
#log4j.appender.FILE.File=E:\\mywork\\CFM_xfire\\src\\run_
#log4j.appender.file.DatePattern=yyyy_MM_dd'.log'
log4j.appender.FILE.MaxBackupIndex=20
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.Append=true
log4j.appender.FILE.BufferSize=16384
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.BufferedIO=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %t [%p] - %m        --> [%l]%n
参考下吧
使用配置是管用的。
_南天北落 2015-12-11
  • 打赏
  • 举报
回复
log4j.rootLogger=WARN,DAILY_ALL 这个是必须的。是下面配置的要不要启用这个意思。 log4j.appender.DAILY_ALL=org.apache.log4j.DailyRollingFileAppender log4j.appender.Threshold=ERROR这个是什么等级需要打印 log4j.appender.DAILY_ALL.layout=org.apache.log4j.PatternLayout布局 log4j.appender.DAILY_ALL.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm} %-50.50c(%L) - %m%n%n打印格式 log4j.appender.DAILY_ALL.File=../logs/dispatch.log路径 protected static final Logger LOGGER = LoggerFactory.getLogger(*.class);定义 LOGGER。ERROR和log4j.appender.Threshold=ERROR定义等级一样 引包也要注意 import org.slf4j.Logger; import org.slf4j.LoggerFactory; 这2个包
_南天北落 2015-12-11
  • 打赏
  • 举报
回复
log4j.rootLogger=WARN,DAILY_ALL
log4j.appender.DAILY_ALL=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Threshold=ERROR
log4j.appender.DAILY_ALL.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY_ALL.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm} %-50.50c(%L) - %m%n%n
log4j.appender.DAILY_ALL.File=../logs/dispatch.log
  • 打赏
  • 举报
回复
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=E:\\mywork\\CFM_xfire\\src\\run.log
#log4j.appender.FILE.File=E:\\mywork\\CFM_xfire\\src\\run_
#log4j.appender.file.DatePattern=yyyy_MM_dd'.log'
log4j.appender.FILE.MaxBackupIndex=20
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.Append=true
log4j.appender.FILE.BufferSize=16384
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.BufferedIO=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %t [%p] - %m        --> [%l]%n
参考下吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧