Log4net设置EventLogAppender大小

时间:2015-05-27 10:24:31

标签: c# .net logging log4net

有没有办法使用EventLogAppender指定事件查看器日志的大小?

或者我是否需要使用C#/ Windows Api来获取记录器?

默认情况下,它设置为1028KB但我需要它为10MB。

1 个答案:

答案 0 :(得分:0)

使用它来解决它:

public static void setEventLogAppenderMaximumSize(log4net.ILog aLogger)
{
    log4net.Appender.IAppender[] logAppenders = aLogger.Logger.Repository.GetAppenders();
    if (logAppenders != null && logAppenders.Length > 0)
    {
        string logName = ((log4net.Appender.EventLogAppender)logAppenders[0]).LogName;

        EventLog[] eventLogs = EventLog.GetEventLogs();
        foreach (EventLog e in eventLogs)
        {
            if (e.Log == logName)
            {
                int newLogSizeInKB = 102400;    //10MB

                if (e.MaximumKilobytes < newLogSizeInKB)
                {
                    e.MaximumKilobytes = newLogSizeInKB;
                }
                return;
            }
        }
    }
}