异常信息: log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:221) at java.io.FileOutputStream.<init>(FileOutputStream.java:142) at org.apache.log4j.FileAppender.setFile(FileAppender.java:311) at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:182) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526) at org.apache.log4j.LogManager.<clinit>(LogManager.java:127) at org.apache.log4j.Logger.getLogger(Logger.java:117) at log4j.LogMoreFile.<clinit>(LogMoreFile.java:11) 经过查看源码,异常产生于: void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize) throws IOException { LogLog.debug("setFile called: "+fileName+", "+append); // It does not make sense to have immediate flush and bufferedIO. if(bufferedIO) { setImmediateFlush(false); } reset(); FileOutputStream ostream = null; try { // // attempt to create file // ostream = new FileOutputStream(fileName, append); } catch(FileNotFoundException ex) { // // if parent directory does not exist then // attempt to create it and try to create file // see bug 9150 // String parentName = new File(fileName).getParent(); if (parentName != null) { File parentDir = new File(parentName); if(!parentDir.exists() && parentDir.mkdirs()) { ostream = new FileOutputStream(fileName, append); } else { throw ex; } } else { throw ex; } 发现此处有个bug 经过查看官方:
相关推荐
要在Java工程中使用Log4j,首先需要下载Log4j的jar包,例如log4j-1.2.16.jar,然后将其加载到工程中去。在src源程序包中添加一个log4j.properties文件,用于配置Log4j的日志记录规则。以下是一个简单的log4j....
通过调用`PropertyConfigurator.configure("path/to/log4j.properties")`,Log4j会加载上述配置,并根据设定来处理日志输出。 在实际开发中,选择同时引用1.2.8和1.2.16的场景可能是因为某些库或组件依赖于特定版本...
3. **初始化Log4j**:在应用程序启动时加载配置文件,初始化Log4j。 4. **编写日志代码**:使用Logger类的debug、info、warn、error等方法记录日志。 **三、示例配置** ```xml [%t] %-5level %logger{36} - %...
对于log4j,应在项目启动时通过加载配置文件来设置日志级别和输出目标;对于Hibernate,应确保XML配置文件格式正确且包含所有必要的数据库连接信息、映射信息等。 ### 解决方案 针对上述问题,解决方案包括: - **...
对于Log4j,配置文件通常为`log4j.properties`或`log4j.xml`,其中定义了日志级别、输出目的地、格式等信息。 - 例如,可以设置全局日志级别为INFO,将错误日志输出到控制台,其他日志写入文件。 6. 绑定冲突解决...
6. 日志配置:每个具体的日志框架都有自己的配置文件,如Log4j的`log4j.properties`或`log4j.xml`。这些配置文件定义了日志级别、输出目的地(控制台、文件、网络等)以及格式化方式。 7. 多版本冲突:在同一个项目...
这个库深受Java日志框架log4j的启发,提供了类似的功能,使得JavaScript开发者能够方便地追踪代码执行过程中的各种事件和错误,从而提升调试效率。 **核心功能** 1. **多级别的日志记录**:log4javascript支持多种...
SLF4J的工作原理是,当你运行包含SLF4J API的程序时,如果没有找到绑定的日志实现,SLF4J会自动检测环境中的jar包,并尝试加载第一个找到的日志实现。如果找到了`slf4j-simple-1.7.7.jar`,那么就会使用SLF4J-Simple...
2. **绑定机制**:SLF4J允许在运行时选择具体的日志实现,通过加载特定的“绑定”实现,如`log4j-over-slf4j.jar`(用于桥接Log4j)或`slf4j-simple.jar`(用于简单打印日志)。在SLF4J 1.7.5版本中,这个机制得到了...
9. **使用 Fuslogvw 工具**:Microsoft 的 Fusion Log Viewer(fuslogvw.exe)可以帮助诊断程序集加载失败的原因。通过该工具,你可以查看详细的加载日志,找出哪个程序集加载失败以及具体原因。 10. **代码问题**...
在日志系统中,如Log4j,DOM4J用于读写配置文件。 五、性能优化 虽然DOM4J提供了便利的XML操作,但处理大型XML时应注意内存效率。使用SAX解析器可降低内存占用,或者分块处理XML以减小一次性加载的数据量。 六、...
如果配置文件中指定了Log4j,则会使用Log4j;如果没有配置,那么默认会使用Java内置的日志系统。 在实际应用中,`commons-logging-1.1.1.jar`的使用通常需要配合具体的日志实现库一起,比如Log4j或SLF4J。这可以...
例如,如果使用Log4j,可以通过log4j.properties或log4j.xml文件进行配置。 4. **轻量级**:由于它的接口设计,Commons Logging本身并不包含任何日志实现,只在运行时查找可用的日志实现,因此它的大小很小,对应用...
- 解释了如何在不同类加载器的作用域下使用自定义的 log4j.xml 文件。 - **8.3.7 使用自己的 log4j.properties 文件——类加载器作用域** - 介绍了类似的概念,但针对的是 log4j.properties 文件。 - **8.3.8 使用...
这个项目的主要目标是为 Java 开发者提供一个简单的、统一的日志接口,允许他们选择任意的日志实现(如 Log4j, JDK内置的日志系统等)作为底层日志框架,而无需更改代码。在本案例中,我们关注的是 "commons-logging...
6. **slf4j-api.jar** 和 **slf4j-log4j12.jar**: 日志框架,用于记录Hibernate的运行日志。 7. **log4j.jar**: 另一个日志库,与SLF4J配合使用。 8. **jta.jar** 或 **javax.transaction-api.jar**: 支持分布式...
而`ant-commons-logging-1.6.2.jar`则是Ant项目的一个关键组件,它是一个专门用于日志记录的库,提供了与各种流行日志框架的集成,如Log4j、Jakarta Commons Logging(JCL)和Java内置的日志API。 1. **Apache Ant*...
`log4j-1.2.16.jar`是日志记录库,用于收集和记录应用程序运行过程中的各种信息,这对于调试和性能监控至关重要。Tapestry与Log4j的集成使得开发者可以方便地控制和调整日志级别,以满足不同阶段的需求。 `tapestry...
4. **日志管理**:调整logging.properties或使用其他日志框架(如Log4j)来定制日志输出。 5. **内存调优**:根据应用的需求和服务器的硬件配置,适当调整JVM的内存参数(如-Xms和-Xmx)。 6. **安全性**:配置...