我正在使用SLF和Log4Net进行日志记录。我希望将根记录器级别设置为ALL,以便在DEBUG模式下编译,并在为RELEASE构建时设置为INFO。出于某些原因,我的变换根本不起作用。有人可以帮我改造吗?
的Web.config:
<configuration>
<configSections>
<section name="slf"
type="Slf.Config.SlfConfigurationSection, slf"/>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<slf>
<factories>
<!-- log everything through the Log4netFacade -->
<factory type="SLF.Log4netFacade.Log4netLoggerFactory, SLF.Log4netFacade"/>
</factories>
</slf>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\logging\log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %logger %username %level%newline - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
<!-- truncated web.config here -->
</configuration>
Web.Debug.config:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<log4net>
<root>
<level value="ALL"
xdt:Transform="Replace"
xdt:Locator="XPath(configuration/log4net/root/level[@value='INFO'])" />
</root>
</log4net>
<system.web>
</system.web>
</configuration>
谢谢!
答案 0 :(得分:2)
要在部署方案之外运行web.config转换,您可能会发现SlowCheetah Visual Studio包非常有用。此软件包允许您在Visual Studio中按F5时自动转换app.config(或任何文件):
你有没有:
- 在构建应用时,想要有不同的appSettings用于调试和发布吗?
- 在构建应用时,是否希望根据构建配置使用不同的连接字符串?
- 想用简洁的语法转换任何XML文件吗?
- 希望以直接的方式调整WCF服务配置?
- 想要在不构建/发布应用的情况下预览XML转换?
- 想要在Web项目发布时转换web.config以外的文件吗?
如果您对其中任何一个回答“是”,那么您应该下载此软件包。
(来自http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5)