Click here to Skip to main content
15,867,762 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all,

I want to log some data into multiple log files using the log4net. My App.cofing looks like this.

HTML
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
	<param name="File" value="Results\Logs\log.txt" />
	<param name="AppendToFile" value="true" />
	<rollingStyle value="Size" />
	<maxSizeRollBackups value="1000" />
	<maximumFileSize value="20KB" />
	<staticLogFileName value="true" />
	<layout type="log4net.Layout.PatternLayout">
		<param name="ConversionPattern" value="[%d{yyyy-MM-dd hh:mm:ss}] - [%-5p] – %m%n" />
		</layout>
</appender>
<appender name="EventAppender" type="log4net.Appender.RollingFileAppender" >
	<param name="File" value="Results\Logs\events.txt" />
	<param name="AppendToFile" value="true" />
	<rollingStyle value="Size" />
	<maxSizeRollBackups value="1000" />
	<maximumFileSize value="20KB" />
	<staticLogFileName value="true" />
	<layout type="log4net.Layout.PatternLayout">
		<param name="ConversionPattern" value="[%d{yyyy-MM-dd hh:mm:ss}] - [%-5p] – %m%n" />
	</layout>
</appender>

<logger name="FirstLogger">
	<level value="ERROR" />
	<param value="ERROR" name="Threshold" />
	<appender-ref ref="LogFileAppender" />
</logger>

<logger name="SecondLogger">
	<level value="WARN" />
	<param value="WARN" name="Threshold" />
	<appender-ref ref="PnPUSBAppender" />
</logger>


Then I want to log data as follows.

C#
protected static readonly ILog log = LogManager.GetLogger(typeof(TrackerLogger));

public void Looger(LoggerLevel level, Object objMsg)
        {
            log4net.Config.XmlConfigurator.Configure();

            switch (level)
            {
                case LoggerLevel.DEBUG:
                    log.Debug(objMsg);
                    break;
                case LoggerLevel.INFO:
                    log.Info(objMsg);
                    break;
                case LoggerLevel.WARN:
                    log.Warn(objMsg);
                    break;
                case LoggerLevel.ERROR:
                    log.Error(objMsg);
                    break;
                case LoggerLevel.FATAL:
                    log.Fatal(objMsg);
                    break;
                default:
                    log.Debug(objMsg);
                    break;
            }
            
        }


Actually I want to change the ILog object based on a flag. Say in one mode I want to select EventAppender or in another case I want to select the other. Can anyone of you guide me on this?

Thanks in advance.
Posted
Updated 12-Mar-20 7:54am
Comments
Member 12301597 11-Feb-16 0:15am    
Multiple-log-files-in-log net
public void Looger(LoggerLevel level, Object objMsg)---In this func()
what is LoggerLevel?
LoggerLevel is a class or another....?????

1 solution

See this CP article, this may helps you
Use Multiple log4net Outputs from One Application[^]

Thanks
--RA
 
Share this answer
 
Comments
CodingLover 30-Jan-12 6:04am    
Thanks for the reply.

Actually I have already look at it. Basically that log base on the threshold, which I don't want to do. What I want to do is in a same application with two different events or actions I want to log into two different files. So in both file there can be Error, Warn, Info logs.

Hope it is clear what I want to do.
aazhar007 12-Mar-20 13:58pm    
<configuration>
<configsections>



<log4net threshold="ALL">
<appender name="SampleRollingAppenderTest" type="log4net.Appender.RollingFileAppender">
<param name="CountDirection" value="1" />
<param name="threshold" value="ERROR" />
<datepattern>_dd_MMMM_yyyy_dddd_HH_mm
<datetimestrategy type="log4net.Appender.RollingFileAppender+LocalDateTime">
<maximumfilesize>100KB
<preservelogfilenameextension>true
<rollingstyle>date
<staticlogfilename>false
<appendtofile>true
<encoding>UTF-8
<file type="log4net.Util.PatternString" value="..\..\Logs\RahulLogError.txt">
<immediateflush>true
<layout type="log4net.Layout.DynamicPatternLayout">


<conversionpattern value="%newline Logged Date : %date,%newline Exception : %exception,%newline File : %file,%newline Location : %location,%newline Level : %level,%newline Logged Message : %message,%newline Method Detail : %method %newline ********************** %newline ">

<lockingmodel type="log4net.Appender.FileAppender+MinimalLock">

<appender name="SampleRollingAppenderTestInfo" type="log4net.Appender.RollingFileAppender">
<param name="CountDirection" value="1" />
<param name="threshold" value="INFO" />
<datepattern>_dd_MMMM_yyyy_dddd_HH_mm
<datetimestrategy type="log4net.Appender.RollingFileAppender+LocalDateTime">
<maximumfilesize>100KB
<preservelogfilenameextension>true
<rollingstyle>date
<staticlogfilename>false
<appendtofile>true
<encoding>UTF-8
<file type="log4net.Util.PatternString" value="..\..\Logs\RahulLogInfo.txt">
<immediateflush>true
<layout type="log4net.Layout.DynamicPatternLayout">


<conversionpattern value="%newline Logged Date : %date,%newline Exception : %exception,%newline File : %file,%newline Location : %location,%newline Level : %level,%newline Logged Message : %message,%newline Method Detail : %method %newline ********************** %newline ">

<filter type="log4net.Filter.LevelRangeFilter">
<levelmin value="INFO">
<levelmax value="WARN">

<lockingmodel type="log4net.Appender.FileAppender+MinimalLock">

<root>
<level value="DEBUG">
<appender-ref ref="SampleRollingAppenderTest">
<appender-ref ref="SampleRollingAppenderTestInfo">



<startup>
<supportedruntime version="v4.0" sku=".NETFramework,Version=v4.5">




Check adding Filter

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900