Greetings!
I am attempting to write to two different log files from inside one C#
application. I have defined two rolling file appenders. I use the GetLogger()
function to get references to each one, and I write to each in turn. But both
messages end up in the first file (cranesimulator_console.log), and the second
file (cranesimulator_console_sim.log) is never created.
Here is my configuration file:
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="CraneSimulator_Console.log" />
<appendToFile value="true" />
<maxSizeRollBackups value="90" />
<rollingStyle value="Size" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />
</layout>
</appender>
<appender name="RollingFile_sim" type="log4net.Appender.RollingFileAppender">
<file value="CraneSimulator_Console_sim.log" />
<appendToFile value="true" />
<maxSizeRollBackups value="90" />
<rollingStyle value="Size" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />
</layout>
</appender>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="RollingFile_sim" />
</root>
</log4net>
And here is the code that should be writing to the files:
public CraneSimulator_Console(string xmlFileName)
{
// m_simulator = new Simulator(xmlFileName, m_logger);
// string fullType =
m_simulator.Database.GetType().AssemblyQualifiedName;
ILog m_logger = LogManager.GetLogger("RollingFile");
ILog simLogger = LogManager.GetLogger("RollingFile_sim");
System.IO.FileInfo logConfigFile = new
System.IO.FileInfo(Environment.CurrentDirectory +
"multiple_files.xml");
XmlConfigurator.ConfigureAndWatch(logConfigFile);
m_logger.Info("This is from cranesimulator_console.");
simLogger.Info("This should be in the sim logger.");
}
Many thanks for your help!