Could you be running into?...
https://issues.apache.org/bugzilla/show_bug.cgi?id=43325
That said, you realize that you can just set system properties for this, right?
So given...
<param name="File" value="${log.dir}/mylog.log"/>
You can set...
-Dlog.dir=/some/path/to/log/directory
You should make sure that the path exists. At least in older versions, Log4j
wouldn't create this for you. That might have been changed in newer versions, but
I wouldn't count on it.
Jake
On 4/9/2010 2:43 AM, Camer38 wrote:
Any chance for a help or at lease link to working example of
DOMConfigurator.subst
I try to use DOMConfigurator.subst to change dynamically in Java code
location of the output logging file. See log4j.xml below.
The following code is called in main method to set up file location:
private static void setLogging(final String logDirectory, final String
logFileName) {
Properties props = new Properties();
props.put("dir.log", logDirectory);
props.put("file.name", logFileName);
String s3 = DOMConfigurator.subst("${dir.log}", props);
String s4 = DOMConfigurator.subst("${file.name}", props);
}
It does not work for me because I get following error:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: \ (The system cannot find the path specified)
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:290)
at
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)
at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:257)
at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:285)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:171)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:184)
at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:502)
at
org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:471)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:921)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:790)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:696)
at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
at org.apache.log4j.Logger.getLogger(Logger.java:118)
at
curam.tools.upgradehelper.SampleJavaSourceMigrationTool.<clinit>(SampleJavaSourceMigrationTool.java:36)
Could you give me a tip what am I missing, please?
Marcin
log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
debug="null"
xmlns:log4j="http://jakarta.apache.org/log4j/"
threshold="null"
<appender
class="org.apache.log4j.RollingFileAppender"
name="LogFileAppender"
>
<layout class="org.apache.log4j.PatternLayout">
</layout>
</appender>
<!-- Loggers -->
<root>
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="LogFileAppender"/>
</root>
</log4j:configuration>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]