0

Could someone please provide an example on how to setup & log into a daily log file in YYYYMMDD format for log4net used in c#. The log file should be name Data_20110407.txt, Data_20110408.txt and so on.

<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
bla bla...?

And in c# how should i call to log into this specific log? Log4Net.Error() or something?

Thanks for help!

2 Answers2

5

Here is the Config Section:

    <appender name="InfoRollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">

        <param name="File" value="auditlog"/>
        <param name="RollingStyle" value="Date"/>
        <param name="DatePattern" value="_yyyy-MM-dd.lo\g"/>
        <param name="StaticLogFileName" value="false"/>
        <maximumFileSize value="100KB" />
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline ---------------START---------------------- %newline %date - %message %newline ----------------END--------------------- %newline" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="DEBUG" />
            <levelMax value="DEBUG" />
        </filter>
        <filter class="log4net.Filter.DenyAllFilter"/>
    </appender>

    <appender name="ErrorRollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">

        <param name="File" value="errorlog"/>
        <param name="RollingStyle" value="Date"/>
        <param name="DatePattern" value="_yyyy-MM-dd.lo\g"/>
        <param name="StaticLogFileName" value="false"/>
        <maximumFileSize value="100KB" />
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline ---------------START---------------------- %newline %date - %message %stackTrace %newline ----------------END--------------------- %newline" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="WARN" />
            <levelMax value="ERROR" />
        </filter>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="InfoRollingLogFileAppender" />
        <appender-ref ref="ErrorRollingLogFileAppender" />
    </root>

</log4net>

Here is how you can log:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(
    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


public void LogError(string message)
{
    log.Error(Program.LogPrefix +"\r\r\nERROR:" + message);
}

public void LogAudit(string message)
{
    log.Debug(Program.LogPrefix + "\r\r\nINFO:" + message);
}
vines
  • 5,160
  • 1
  • 27
  • 49
sajoshi
  • 2,733
  • 1
  • 18
  • 22
  • hi sajoshi where is the log file saves to? – aspnet_thread_safe Apr 07 '11 at 03:24
  • the log file save to the current assembly location.. bin directory – sajoshi Apr 07 '11 at 05:50
  • Alright got it but the log filename has become Data_2011-04-07.PxP instead of Data_2011-04-07.txt? And i see other component is writing to the same log file, i'm guessing the component is calling .Debug also. How do i make it so that only my code is writing to this log file? Thanks for your help sajoshi. – aspnet_thread_safe Apr 07 '11 at 07:30
3

Please refer to Log4net rolling daily filename with date in the file name

Community
  • 1
  • 1
airbai
  • 3,906
  • 5
  • 26
  • 30