配置OpenUddi时遇到下面的报错:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: \tmp\uddi-access.log (系统找不到指定的路径。)
at java.io.FileOutputStream.openAppend(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:156)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:123)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:524)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:408)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:340)
at com.novell.uddi3.LogInitializer.contextInitialized(LogInitializer.java:67)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
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.deployWAR(HostConfig.java:850)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
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(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
从报错信息上来看是我在运行OpenUddi时,有文件找不到。
其实真正原因是log4j.properties里的一个配置项有问题,我的文件中有这样一项:
log4j.appender.ACCESS_FILE.File=/tmp/uddi-access.log
根据这样的配置项log4j会为你依照这个目录找到uddi-access.log, 如果没有这个文件,也会帮你创建文件,但是如果这个目录不存在,它就报错啦。现在的配置log4j会认为Tomcat所在的根目录下有一个tmp文件夹,但是我的D盘下没有这个folder,所以就报错了。
解决方法:
1.在D盘下创建一个tmp
2.改配置项,比如:
log4j.appender.ACCESS_FILE.File=../webapps/uddi/uddi-access.log
分享到:
相关推荐
2. `<param-name>log4jConfigLocation</param-name>` 指定了Log4j配置文件的路径,这里是`WEB-INF/config/log4j.properties`。这个配置告诉Web应用在哪里寻找Log4j的配置信息。 3. `<param-name>log4...
### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...
在实际应用中,将`log4j.jar`添加到项目的类路径中,并根据项目需求定制`log4j.properties`,即可实现有效的日志管理。这不仅有助于问题排查,也有利于系统维护和性能优化,因为过多的日志可能会占用大量磁盘空间,...
### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...
`.classpath`和`.project`是Eclipse项目配置文件,它们与Log4J配置关系不大,但确保Log4J库在项目的类路径中是必要的。`.settings`目录可能包含Eclipse特定的项目设置,这些设置可能包含了关于构建路径和库引用的...
### Log4j配置详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,用于实现灵活的日志管理。它允许开发者通过简单的配置文件来控制日志的输出等级、输出目的地以及日志信息的格式化方式。Log4j支持多种配置...
通常,你可以在构建工具(如Maven或Gradle)的依赖管理中指定Log4j的版本,或者直接将jar包复制到项目的`lib`目录下。 在下载并导入`log4j.jar`后,你需要将配置文件(如`log4j.properties`)放置在一个可被Java...
在Java开发领域,Spring框架是不可或缺的一部分,它提供了一个全面的编程和配置模型...通过合理配置`log4j.properties`文件,开发者可以有效地监控系统状态,及时发现并解决问题,同时避免过多的日志输出影响系统性能。
本教程将详细解释如何配置Log4j,使其在不同操作系统环境下(Windows和Linux)都能统一将日志打印到`user.dir`目录下,避免因路径分隔符差异带来的问题。 首先,了解`user.dir`系统属性。在Java中,`user.dir`代表...
总结来说,Log4j是Java应用中不可或缺的工具,它通过`log4j.properties`配置文件实现了强大的日志管理,使得开发者能够轻松控制日志输出,提升开发效率,同时对系统运行状态进行有效监控。理解并熟练掌握Log4j的配置...
Log4j-1.2.17.jar及其配置文件是Java开发中不可或缺的工具,它们使得日志管理变得简单而高效。理解并熟练掌握Log4j的使用,不仅可以提升开发效率,也有助于优化系统的监控和维护。通过合理配置,Log4j可以适应各种...
- **引入依赖**: 首先需要添加Log4j的jar包,如`log4j-1.2.17.jar`到项目类路径中。 - **获取Logger**: 通过`Logger.getLogger(Class)`获取指定类的日志记录器。 - **日志方法调用**: 使用`debug()`, `info()`, `...
这样,当Tomcat服务器启动时,会自动读取并应用指定的Log4j配置,从而为整个应用提供日志服务。 在Struts2框架中,由于它集成了Log4j,你可以通过配置Struts2的配置文件(如`struts.xml`)来进一步控制日志行为,...
《深入理解Log4j配置文件》 在Java开发中,日志记录是不可或缺的一部分,而Log4j作为一款广泛使用的日志框架,以其强大的功能和灵活性深受开发者喜爱。本篇文章将详细探讨一个感觉还不错的Log4j配置文件,旨在帮助...
3. **多种Appender**:Appender是Log4j中负责将日志信息输出到指定目的地的组件。1.2.15版本包含了许多预定义的Appender,如ConsoleAppender(控制台)、FileAppender(文件)、SMTPAppender(电子邮件)等。 4. **...
总结来说,Log4j是Java开发中不可或缺的工具,通过配置`log4j.properties`文件,我们可以精确地控制日志的输出,便于调试和监控系统运行状态。而`log4j-1.2.11.jar`则包含了实现这些功能所需的类库。
这个“log4j简单范例 日志文件是相对路径的”示例将展示如何配置Log4j来记录日志,并将日志文件保存在程序运行时的相对路径下。 首先,Log4j的核心组件包括Logger(日志器)、Appender(输出目的地)和Layout(格式...
如果你希望自定义配置文件的位置,可以通过系统属性`log4j.configuration`来指定,例如`System.setProperty("log4j.configuration", "path/to/your/log4j.properties")`。 总的来说,Log4j是一个强大且灵活的日志...
### 常用log4j配置详解 #### log4j简介 Log4j是一个开源的日志框架,由Apache Software Foundation开发。它允许开发者通过简单的配置文件来定义日志的输出等级、输出目的地以及日志信息的格式等。这极大地提高了...