Лучшая практика для включения log4Net внешнего файла конфигурации в ASP.NET

Нет сочетания клавиш по умолчанию, но можно связать его с сочетанием клавиш в общих параметрах среды (Опции-> Среда-> Клавиатура), командой является Файл. CloseAllButThis.

25
задан Martin Buberl 17 January 2011 в 21:52
поделиться

2 ответа

At startup, call:

XmlConfigurator.Configure();

In your Web.config, specify log4net.Config in appSettings:

<add key="log4net.Config" value="Log.config" />

This special setting allows you to change the log configuration without having to recompile. Especially helpful for moving between multiple environments.

Example

Consider the following project file structure:

\config\log4net\debug.config
\config\log4net\staging.config
\config\log4net\release.config
\config\appSettings\debug.config
\config\appSettings\staging.config
\config\appSettings\release.config

Application and logging configurations are distinguished for each environment. References to the logging configurations are maintained in the application settings.

\config\appSettings\debug.config:

<appSettings>
    <add key="log4net.Config" value="config\log4net\debug.config" />
    ...
</appSettings>

\config\appSettings\staging.config:

<appSettings>
    <add key="log4net.Config" value="config\log4net\staging.config" />
    ...
</appSettings>

\config\appSettings\release.config:

<appSettings>
    <add key="log4net.Config" value="config\log4net\release.config" />
    ...
</appSettings>

Changing environments is a simple matter of updating the appSettings file in Web.config.

<appSettings file="config\appSettings\staging.config">
    ...
</appSettings>
45
ответ дан 28 November 2019 в 20:51
поделиться

Я был недоволен «волшебным» подходом конфигурации, потому что я хотел указать мою конфигурацию на пути с переменной среды (% Public% \ MyApp \ Mysettings.config).

Итак, вместо этого у меня есть это в моем приложении.config:

<add key="MyLog4NetConfigFile" value="%PUBLIC%\MyApp\MySettings.config"/>

и сделайте это, чтобы установить мою конфигурацию Log4net:

var configFile = ConfigurationManager.AppSettings.Get("MyLog4NetConfigFile");
if( !string.IsNullOrEmpty(configFile))
{
    configFile = Environment.ExpandEnvironmentVariables(configFile);
    XmlConfigurator.Configure(new FileInfo(configFile));
}
4
ответ дан 28 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: