installutil
我有一个 Web 应用程序,它需要为事件日志注册事件源的自定义安装程序(使用 运行)。此安装程序代码包含一个常量(特别是事件源的名称),该常量也在web.config
文件中重复。
有没有办法可以在一个地方定义这个常量(根据“DRY”原则)?
有关更多背景信息:这是针对 log4net 事件日志附加程序的,它需要安装程序来防止根据此 log4net 常见问题解答出现权限问题。
installutil
我有一个 Web 应用程序,它需要为事件日志注册事件源的自定义安装程序(使用 运行)。此安装程序代码包含一个常量(特别是事件源的名称),该常量也在web.config
文件中重复。
有没有办法可以在一个地方定义这个常量(根据“DRY”原则)?
有关更多背景信息:这是针对 log4net 事件日志附加程序的,它需要安装程序来防止根据此 log4net 常见问题解答出现权限问题。
根本不是一般问题的解决方案,但我通过编写自定义 log4net appender 解决了这个特殊情况,以便它可以在代码中而不是通过配置文件进行初始化:
public sealed class EzeReportingEventLogAppender : EventLogAppender
{
public EzeReportingEventLogAppender()
{
Layout = new PatternLayout(Configuration.EventLogPatternLayout);
LogName = Configuration.EventLogName;
ApplicationName = Configuration.EventLogApplicationName;
}
}
在 web.config 中(不再包括applicationName
):
<appender name="FatalAppender" type="EzeReporting.EzeReportingEventLogAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
</filter>
</appender>