【问题标题】:How to programmatically modify My.Log settings configuration如何以编程方式修改 My.Log 设置配置
【发布时间】:2011-03-06 20:33:29
【问题描述】:

我们在 Vb.Net 中有几个应用程序使用内置的日志系统 (My.Log) 来写入日志信息。到目前为止,这个系统在执行之前是由 application.config 文件配置的,但现在我们想让用户选择一些选项。

有没有一种不需要解析 XML 文件并对其进行处理的方法?有没有像 My.Settings 这样的东西可以完成肮脏的工作?

提前致谢。

一个示例是能够将 DefaultSwitch 值从 Verbose 修改为 Warning 或更改 FileLog 的属性,例如 maxFiles 属性:

<switches>
    <add name="DefaultSwitch" value="Verbose" />
</switches>
<sharedListeners>
<add name="FileLog" type="Sipro.Utils.ExtendedLogTraceListener, Sipro.Utils, Version=1.0.6.0, Culture=neutral, PublicKeyToken=null"
    autoflush="True"
    delimiter=" - "
    diskspaceexhaustedbehavior="DiscardMessages"
    includehostname="False"
    logfilecreationschedule="Daily"
    maxfiles="31"
    fullinformation="True"
    includeDate="True"
    includeTicks="True"/>

【问题讨论】:

    标签: .net vb.net logging settings


    【解决方案1】:

    可能取决于您希望能够设置的设置,但例如,如果用户想要选择写入文件日志的路径,我认为这可能有效:

    My.Log 具有 TraceSource 属性,该属性具有 Listeners 集合。如果它包含FileLogTraceListener,您应该能够转换它,然后设置/获取它的Location 属性。

    EventLogTraceListener可以设置EventLog

    【讨论】:

    • 更多地考虑诸如记录器的开关和选项之类的事情。我将在主要问题上举一个例子。还是谢谢!
    • @SoMos: 'TraceSource' 有一个 'Switch' 属性,您可以获取和设置它,如果您按照层次结构上下移动您会发现的那些类和属性,我不会感到惊讶至少有一些你正在寻找的东西。
    • @SoMos:在 My.Log 的某个地方看到了一些东西,使用 DefaultSwitch 并且 My.Log 上的 TraceSource 有一个 Switch 属性,它有一个 Level 属性,如此处所述 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多