I had a similar problem with "because it is being used by another process".
Probably got nothing to do with yours but I was using the wrong
debug/release reference file.
From: "Stewart, Mark (GE Consumer Finance, consultant)"
<[EMAIL PROTECTED]>
Reply-To: "Log4NET User" <log4net-user@logging.apache.org>
To: <log4net-user@logging.apache.org>
Subject: File Access Error with RollingFileAppender
Date: Fri, 3 Jun 2005 09:55:16 -0400
I am having problems with the log4net in a small test project (Using VS.NET
2003, and log4net (1.2.0 Beta 8)). It works fine when I use the
ConsoleAppender, but fails to log some messages with the
RollingFileAppender.
I have a simple log4net test solution with a primary project and a library
project with a simple class and log method.
Both projects call log4net.Config.DOMConfigurator.Configure() on startup,
and set the class-level variables:
private static readonly log4net.ILog log =
log4net.LogManager.GetLogger(typeof(TestClass));
private static readonly bool isDebugEnabled = log.IsDebugEnabled;
private static readonly bool isInfoEnabled = log.IsInfoEnabled;
The primary project logs fine, but the library class instance fails to log
to the file when instantiated and called,
and I get the following trace output:
log4net: FileAppender: Opening file for writing
[C:\Myfiles\MyProjects\Log4NetTest\LogTest.log] append [True]
log4net:ERROR RollingFileAppenderOpenFile(,True) call failed.
System.IO.IOException: The process cannot access the file
"C:\Myfiles\MyProjects\Log4NetTest\LogTest.log" because it is being used by
another process.
When I debug through the code, I find that the writer for the failing class
instance is "not defined".
Here is my config file...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Register the section handler for the log4net section -->
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogger"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File"
value="C:\\Myfiles\\MyProjects\\Log4NetTest\\LogTest.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="100KB" />
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="true" />
<lockingModel
type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c
[%x] - %m%n" />
</layout>
</appender>
<appender name="DefaultLogger"
type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c
[%x] - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogger" />
</root>
</log4net>
</configuration>
I tried adding, then removing the <lockingModelsubkey for the appender,
with no change.
As I said, the logging works fine with the ConsoleAppender, but not the
file.
Is this a known problem, or I am I doing something wrong?
Thanks,
Mark Stewart
[EMAIL PROTECTED]