如何在 web 配置中设置默认 appender?

阿马尔·穆萨

我在 web 配置中有 2 个 appender,第一个将日志保存在 xml 文件中,另一个使用外部 API 保存日志,我的问题是:

我需要设置我的默认 appender 只是调用外部 API,不需要保存在 xml 文件上,如果 api reutred 失败,我想使用 xml 文件的日志记录(我在运行时这样做)。主要问题:如何设置第一个 appender 是登录 web.config 文件的默认值

网络配置:

<log4net>
     <!--workflow logging-->
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:/Workspaces/workflowLog/workflow-info.xml" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="Tahaluf.Workflow.Common.Core.Log.WorkFlowXmlLayout" />
    </appender>




    <!--Connect to Tahaluf Logging-->
    <appender name="WorkFlowAppender" type="Tahaluf.Workflow.Common.Core.Log.WorkFlowAppender"> 
    </appender>

    <root>
      <level value="ALL"  />
      <appender-ref ref="WorkFlowAppender"  />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>
于尔根·穆勒

解决办法是修改Thresholdappender的。

网络配置:

<root>
  <level value="ALL"  />
  <appender-ref ref="WorkFlowAppender"  />
  <appender-ref ref="LogFileAppender" />
</root>

添加方法:

public static void SetThreshold(string appenderName, log4net.Core.Level threshold)
    {
        foreach (log4net.Appender.AppenderSkeleton appender in log4net.LogManager.GetRepository().GetAppenders())
        {
            if (appender.Name == appenderName)
            {
                appender.Threshold = threshold;
                break;
            }
        }
    }

关闭附加程序: SetThreshold("LogFileAppender", log4net.Core.Level.Off);

打开 appender:SetThreshold("LogFileAppender", log4net.Core.Level.Debug);级别可以是任何有效级别(不仅是Debug

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章