HPFE455
asked on
Log4Net - How to write logs to multiple files/Console using C# application
Hello Experts,
I have different applications which use the same app.config to write logs to a file or a console window. My app.config file is as follows
In My c# project, I am trying to use "LogFileAppender" to write the logs to a file. But the issue is, it also sending the logs to the Console Window.
Question:
How can I stop sending the logs to the console when I use LogFileAppender using the above app.config file
Thanks for your help
I have different applications which use the same app.config to write logs to a file or a console window. My app.config file is as follows
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<File value="C:\File1.log" />
<AppendToFile value="true" />
<rollongStyle value="Composite" />
<maximumFileSize value="200MB" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
</appender>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<File value="C:\File2.log" />
<AppendToFile value="true" />
<rollongStyle value="Date" />
<maximumFileSize value="100MB" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="INFO" />
</filter>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="FATAL" />
</filter>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value ="ERROR"/>
<foreColor value ="Red"/>
</mapping>
<mapping>
<level value ="WARN"/>
<foreColor value ="Yellow"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="RollingFile" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>
In My c# project, I am trying to use "LogFileAppender" to write the logs to a file. But the issue is, it also sending the logs to the Console Window.
Question:
How can I stop sending the logs to the console when I use LogFileAppender using the above app.config file
Thanks for your help
ASKER
Thanks Michael74,
My logger setting was as follows,
log4net.Config.XmlConfigur ator.Confi gure();
ILog log = log4net.LogManager.GetLogg er("");
I tried you solution but it didn't work.
My logger setting was as follows,
log4net.Config.XmlConfigur
ILog log = log4net.LogManager.GetLogg
I tried you solution but it didn't work.
You will probably need to do something like this:
Then you would instantiate each logger as such:
-saige-
<!-- Add the following to your config file and remove\comment out the root section -->
<logger name = "FileLogger">
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
<logger name = "ConsoleLogger">
<level value="ALL" />
<appender-ref ref="ColoredConsoleAppender" />
</logger>
Then you would instantiate each logger as such:
private static readonly ILog fileLogger = LogManager.GetLogger("FileLogger");
private static readonly ILog consoleLogger = LogManager.GetLogger("ConsoleLogger");
-saige-
ASKER
I found the solution by modifying the app.config as follows.
<logger name = "FileLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
<root>
<level value="ALL" />
<appender-ref ref="RollingFile" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Ack. You beat me to it. ;)
-saige-
-saige-
ASKER
Saige,
I would like to accept your detailed solution. But I couldn't find any option to change the accepted solution.
Thanks
I would like to accept your detailed solution. But I couldn't find any option to change the accepted solution.
Thanks
You can always request to reopen the question so that you can reassign the points or change the accepted solution.
At the top of the question you will see something like:You would choose the 'Request Attention' link in order to have the question reopened. Just be sure to provide the reason for the requested attention.
Here is the link reposted: Request Attention
-saige-
At the top of the question you will see something like:You would choose the 'Request Attention' link in order to have the question reopened. Just be sure to provide the reason for the requested attention.
Here is the link reposted: Request Attention
-saige-
Open in new window
try
Open in new window