log4j生成的日志文件,怎么找不到??

猪猪飞侠 2010-04-09 10:21:31
最近用Struts2开发了一个小项目,想用log4j把日志信息输到控制台上和文件里边,控制台输出实现了,但却找不到生成的日志文件,
log4j.properties配置如下:
og4j.rootLogger=INFO, file1,logfile

log4j.appender.file1.layout=org.apache.log4j.PatternLayout


log4j.appender.file1=org.apache.log4j.ConsoleAppender
log4j.appender.file1.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=log.log
log4j.appender.logfile.MaxFileSize=1024KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
LogInit.java如下:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4jInint extends HttpServlet {

private static final long serialVersionUID = 1L;

private static Logger logger = Logger.getLogger(Log4jInint.class);

public Log4jInint() {

}

public void init(ServletConfig config) throws ServletException {

String prefix = config.getServletContext().getRealPath("/");
String file = config.getInitParameter("log4j");
String filePath = prefix + file;
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(filePath);
props.load(istream);
istream.close();
String logFile = prefix
+ props.getProperty("log4j.appender.logfile.File");// 设置路径
props.setProperty("log4j.appender.logfile.File", logFile);
PropertyConfigurator.configure(props);// 装入log4j配置信息
logger.info("log4j init success!");
} catch (IOException e) {
logger.error("Could not read configuration file [" + filePath
+ "].");
logger.error("Ignoring configuration file [" + filePath + "].");
return;
}
}

}
web.xml 对log4j的配置如下:
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.creditcard.util.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

找不到生成的日志文件,望高手给予指点,感激不尽······
...全文
818 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongkuang 2010-04-15
  • 打赏
  • 举报
回复
jar包放了没?
猪猪飞侠 2010-04-13
  • 打赏
  • 举报
回复
不行,就是找不到,web中的配置文件有错吗? 还有错误信息为:
Exception starting filter struts2
java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/util/logging/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredFields(Unknown Source)
at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:168)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:259)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.logging.Logger
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
... 31 more
这应该是log4j的错误吧,这些错误是怎么回事呢?
computerclass 2010-04-10
  • 打赏
  • 举报
回复
你将项目刷新下,试试!!!
猪猪飞侠 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fenglx871004 的回复:]
log4j.appender.logfile.File=log.log 在项目下没有吗?
如果没有将这个修改一下log4j.appender.logfile.File=./log.log
[/Quote]
不行啊,还是找不到log.log文件,这是怎么回事呢?
fenglx871004 2010-04-09
  • 打赏
  • 举报
回复
log4j.appender.logfile.File=log.log 在项目下没有吗?
如果没有将这个修改一下log4j.appender.logfile.File=./log.log

24,923

社区成员

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

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