Невозможно записать журнал с помощью log4net в другой файл-2
Я пишу журнал с помощью log4net и пишу отдельный файл для исключения и информации.
Но когда я пишу какое-либо исключение, оно записывается в оба файла. он должен регистрироваться только в файле ошибок, а не в обоих файлах
Ниже приведен мой конфигурационный файл :
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net debug="true"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value=".\Log\ChatLog.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMin value="DEBUG" /> </filter> <conversionPattern value="%level %username %message%newline" /> </layout> </appender> <appender name="RollingErrorLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value=".\Log\ErrorLog.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="ERROR" /> <levelMin value="WARNING" /> <levelMax value="FATAL" /> </filter> <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="RollingErrorLogFileAppender" /> </root> </log4net>
------------------ А код за этим стоит ---------------
public static class ChatLogger { /// <summary> /// Enum for Log Type /// </summary> public enum LoggerType { Errorlog, Debuglog, Warninglog, Infolog, Fatellog } private static readonly ILog chatlog = LogManager.GetLogger("RollingLogFileAppender"); private static readonly ILog errorlogs = LogManager.GetLogger("RollingErrorLogFileAppender"); /// <summary> /// main method to log /// </summary> /// <param name="logMsg">log message</param> /// <param name="logType">log type</param> public static async Task WriteLog(string logMsg, string logType) { try { if (Convert.ToBoolean(ConfigurationManager.AppSettings["IsLogEnabled"].Trim())) { log4net.Config.XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("~/Web.config"))); // Web version switch (logType) { case "Debuglog": await Task.Run(() => chatlog.Debug(logMsg)); break; case "Errorlog": string errorlog = logMsg.Length > 500 ? logMsg.Substring(0, 500) : logMsg; await Task.Run(() => errorlogs.Error(errorlog)); break; case "Warninglog": string warnlog = logMsg.Length > 500 ? logMsg.Substring(0, 500) : logMsg; await Task.Run(() => chatlog.Warn(warnlog)); break; case "Infolog": await Task.Run(() => chatlog.Info(logMsg)); break; case "Fatellog": string fatallog = logMsg.Length > 500 ? logMsg.Substring(0, 500) : logMsg; await Task.Run(() => chatlog.Fatal(fatallog)); break; } } } catch (Exception ex) { await Task.Run(() => chatlog.Error(ex.StackTrace.Length > 500 ? ex.StackTrace.Substring(0, 500) : ex.StackTrace)); } }
---------------
Пожалуйста, скажите мне, какую настройку или код я упускаю.
Спасибо
Садила
Что я уже пробовал:
я перепробовал все настройки .
Please tell me what setting or code i am missing.