gpt4 book ai didi

c# - 如何通过代码启用/禁用存储在配置中的日志记录和文件附加信息?

转载 作者:太空狗 更新时间:2023-10-29 23:27:06 24 4
gpt4 key购买 nike

我有一个使用 log4net 进行日志记录的框架,我知道我们可以通过配置文件在 log4net 中禁用或启用所需的日志记录。我想开发一些设置类,以便管理员或用户可以设置日志记录等。log4net 中获取配置文件并通过代码更改配置文件中的设置的类是什么? (是否有或我应该使用 .net System.Xml)任何代码片段?

<?xml version="1.0" encoding="utf-8" ?>
<log4net>

<root>
<level value="ALL" />
<!--<appender-ref ref="LogFileAppender" />-->
<!--<appender-ref ref="ConsoleAppender" />-->
<appender-ref ref="DEBUG-RollingLogFileAppender" />
<appender-ref ref="Error-RollingLogFileAppender" />
</root>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n"/>
<param name="Footer" value="[Footer]\r\n"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c %ndc %P{auth} - %m%n" />
</layout>
</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %ndc %P{auth} - %m%n" />
</layout>
</appender>

<appender name="DEBUG-RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="..\\logs\\debug" />
<param name="AppendToFile" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value=".yyyyMMdd'.log'" />
<param name="MaxSizeRollBackups" value="30" />
<param name="MaximumFileSize" value="5MB" />
<layout type="log4net.Layout.PatternLayout,log4net">
<!--<param name="ConversionPattern" value="%d [%t] %-5p %c %ndc %P{auth} - %m%n" />-->
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<!--<levelMin value="INFO" />-->
<levelMax value="INFO" />
</filter>
</appender>

<appender name="Error-RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="Threshold" value="WARN"/>
<param name="File" value="..\\logs\\errors" />
<param name="AppendToFile" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value=".yyyyMMdd'.log'" />
<param name="MaxSizeRollBackups" value="30" />
<param name="MaximumFileSize" value="5MB" />
<layout type="log4net.Layout.PatternLayout,log4net">
<header value="&#13;&#10;" />
<footer value="&#13;&#10;======================================================================" />
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
</layout>
</appender>

</log4net>

最佳答案

您的问题不是很清楚:您是要以编程方式更改当前运行的配置,还是以编程方式更改配置文件

如果是后者,我认为您不需要 log4net 本身的任何东西——而且我不会特别期望它提供 API 来操作文件。相反,我会使用 LINQ to XML(假设是 .NET 3.5 或更高版本)并自己直接操作它。从外观上看,它非常简单。研究配置文件格式,弄清楚您想对其进行哪些更改,然后为其编写适当的代码。您甚至不需要为此引用 log4net。

关于c# - 如何通过代码启用/禁用存储在配置中的日志记录和文件附加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com