添加多个 log4net 附加程序

发布于 2025-01-10 10:56:36 字数 4264 浏览 5 评论 0原文

我目前正在尝试将 Microsoft Teaqms 附加程序添加到我的 log4net 文件中。在这个文件中我已经有不同的附加程序。我当前的尝试如下所示:

<log4net debug="true">
    <root>
        <level value="WARN" />
        <appender-ref ref="AdoNetAppender" />
        <appender-ref ref="myMicrosoftTeamsAppender" />
    </root>
    <logger name="ErpLogger" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="AdoNetAppender"/>
    </logger>
    <logger name="ChangeHistoryLogger" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="AdoNetAppender"/>
    </logger>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <bufferSize value="1" />
        <ReconnectOnError value="true" />
        <connectionType
          value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionStringName value="LogConnection" />
        <commandText
          value="INSERT INTO log4netlog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
        <threshold value="ALL" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d [%t] %-5p %c %m%n" />
        </layout>
    </appender> 
    <appender name="myMicrosoftTeamsAppender" type="log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams">
        <WebhookUrl value="my Teams URL" />     
        <titleLayout>
            <conversionPattern value="Title - %p: %date [%c]" />
        </titleLayout>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5level %logger - %message" />
        </layout>
    </appender>
</log4net>

因此,我已经有了一个带有此 Teams 附加程序的测试项目,每次我添加日志时,都会在 Teams 频道中创建一条消息。但现在我试图将其添加到我的实际项目中,但它不起作用。我在 Startup 类中尝试使用以下代码:

log4net.Config.XmlConfigurator.Configure();
var logger = LogManager.GetLogger("myMicrosoftTeamsAppender");
logger.Info("Info.");
logger.Fatal("Fatal!", new ArgumentException("42"));

我该如何解决这个问题? 如果您需要代码的任何其他部分,请告诉我:)

编辑: 我在输出中找到了这一点:

...
log4net: Loading Appender [teams] type: [log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams]
log4net:ERROR Could not create Appender [teams] of type [log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams]. Reported error follows.
System.IO.FileNotFoundException: Die Datei oder Assembly "log4net.MicrosoftTeams" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: "log4net.MicrosoftTeams"
   bei System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   bei System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
   bei System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   bei System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)

...

更新: 我现在刚刚收到此错误:

log4net:ERROR Appender named [myMicrosoftTeamsAppender] not found.

​​其他信息

I'm currently trying to add a Microsoft Teaqms appender to my log4net file. In this file I already have different appenders. My current try looks like this:

<log4net debug="true">
    <root>
        <level value="WARN" />
        <appender-ref ref="AdoNetAppender" />
        <appender-ref ref="myMicrosoftTeamsAppender" />
    </root>
    <logger name="ErpLogger" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="AdoNetAppender"/>
    </logger>
    <logger name="ChangeHistoryLogger" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="AdoNetAppender"/>
    </logger>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <bufferSize value="1" />
        <ReconnectOnError value="true" />
        <connectionType
          value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionStringName value="LogConnection" />
        <commandText
          value="INSERT INTO log4netlog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
        <threshold value="ALL" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d [%t] %-5p %c %m%n" />
        </layout>
    </appender> 
    <appender name="myMicrosoftTeamsAppender" type="log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams">
        <WebhookUrl value="my Teams URL" />     
        <titleLayout>
            <conversionPattern value="Title - %p: %date [%c]" />
        </titleLayout>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5level %logger - %message" />
        </layout>
    </appender>
</log4net>

So I already had an test project with this Teams appender and everytime I added a Log a message in the Teams channel gets created. But now I'm trying to add this in my real project and it doesn't work. I tried it with this code in my Startup class:

log4net.Config.XmlConfigurator.Configure();
var logger = LogManager.GetLogger("myMicrosoftTeamsAppender");
logger.Info("Info.");
logger.Fatal("Fatal!", new ArgumentException("42"));

How can I solve this?
let me know if you need any other parts of the code :)

Edit:
I found this in the Output:

...
log4net: Loading Appender [teams] type: [log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams]
log4net:ERROR Could not create Appender [teams] of type [log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams]. Reported error follows.
System.IO.FileNotFoundException: Die Datei oder Assembly "log4net.MicrosoftTeams" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: "log4net.MicrosoftTeams"
   bei System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   bei System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
   bei System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   bei System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
   bei log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)

...

Update:
I'm just getting this error now:

log4net:ERROR Appender named [myMicrosoftTeamsAppender] not found.

Additonal informations

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文