CodingLover Ответов: 1

Несколько файлов журналов в log4net


Всем привет,

Я хочу записать некоторые данные в несколько лог-файлов с помощью log4net. Мое приложение.cofing выглядит так.

<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>


Затем я хочу записать данные следующим образом.

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;
            }
            
        }


На самом деле я хочу изменить объект ILog на основе флага. Говорят, в одном режиме, я хочу, чтобы выбрать EventAppender или в другом случае я хочу, чтобы выбрать другой. Может ли кто-нибудь из вас помочь мне в этом?

Заранее спасибо.

Member 12301597

Несколько лог-файлов-в-лог-сети
public void Looger(LoggerLevel level, Object objMsg)---в этой функции()
что такое LoggerLevel?
LoggerLevel-это класс или другой....?????

1 Ответов

Рейтинг:
2

Rajesh Anuhya

Смотрите эту статью CP, это может вам помочь
Используйте несколько выходов log4net из одного приложения[^]

Спасибо
--РА


CodingLover

Спасибо за ответ.

На самом деле я уже посмотрел на него. В основном это бревенчатая база на пороге, чего я делать не хочу. То, что я хочу сделать, - это в одном приложении с двумя разными событиями или действиями, которые я хочу войти в два разных файла. Так что в обоих файлах могут быть ошибки, предупреждения, информационные журналы.

Надеюсь, вам ясно, что я хочу сделать.

aazhar007

<конфигурация>
<configsections>



<log4net threshold="ALL">
<appender name="SampleRollingAppenderTest" type="log4net.Приемщика.RollingFileAppender">
<param name="CountDirection" value="1" />
<param name="threshold" value="ERROR" />
<datepattern>_dd_mmmmm_yyyy_dddd_hh_mm
<datetimestrategy type="log4net.Приемщика.RollingFileAppender+LocalDateTime">
<maximumfilesize>100KB
<preservelogfilenameextension>true
<rollingstyle>Дата
<staticlogfilename>false
<appendtofile>true
<кодировка>UTF-8
<тип файла="log4net.Util.PatternString" значение="..\..\Logs\RahulLogError.txt">
<immediateflush>правда
<тип макета="log4net.Расположение.DynamicPatternLayout">


&ЛТ;conversionpattern значение="%строку заносится дата : %дата%новая строка исключения : %исключений,%строки файл : файл %%символ новой строки, откуда : %местоположение,%строки уровень : %уровень,%строки записывается сообщение : %сообщение%строки способ подробно : %метод %новой строки ********************** %строку "&ГТ;

<lockingmodel type="log4net.Приемщика.FileAppender+MinimalLock">

<appender name="SampleRollingAppenderTestInfo" type="log4net.Приемщика.RollingFileAppender">
<param name="CountDirection" value="1" />
<param name="threshold" value="INFO" />
<datepattern>_dd_mmmmm_yyyy_dddd_hh_mm
<datetimestrategy type="log4net.Приемщика.RollingFileAppender+LocalDateTime">
<maximumfilesize>100KB
<preservelogfilenameextension>true
<rollingstyle>Дата
<staticlogfilename>false
<appendtofile>true
<кодировка>UTF-8
<тип файла="log4net.Util.PatternString" значение="..\..\Logs\RahulLogInfo.txt">
<immediateflush>правда
<тип макета="log4net.Расположение.DynamicPatternLayout">


&ЛТ;conversionpattern значение="%строку заносится дата : %дата%новая строка исключения : %исключений,%строки файл : файл %%символ новой строки, откуда : %местоположение,%строки уровень : %уровень,%строки записывается сообщение : %сообщение%строки способ подробно : %метод %новой строки ********************** %строку "&ГТ;

<тип фильтра="log4net.Фильтр.LevelRangeFilter">
<levelmin value="информация">
&ЛТ;levelmax значение="предупреждать"и GT;

<lockingmodel type="log4net.Приемщика.FileAppender+MinimalLock">

<root>
&ЛТ;значение уровня="отладка"и GT;
<appender-ref ref="SampleRollingAppenderTest">
<appender-ref ref="SampleRollingAppenderTestInfo">



<startup>
<supportedruntime version="v4.0" sku=".NETFramework,версия=v4.5">




Проверьте добавление фильтра