将新的追加器添加到 log4net 文件

发布于 2025-01-10 19:22:42 字数 2683 浏览 5 评论 0原文

我目前正在尝试将 Microsoft Teams 附加程序添加到我的项目中。
我有以下项目结构:
项目结构
我想在 log4net.development.config 中添加附加程序,所以我在这里尝试了这种方式: log4.development.config 文件:

<log4net debug="true">
    <root>
        <level value="WARN" />
        <appender-ref ref="AdoNetAppender" />
        <appender-ref ref="teams" />
    </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="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
        ...
    </appender>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        ...
    </appender>
    <appender name="console" type="log4net.Appender.ConsoleAppender">
        ...
    </appender>
    <appender name="file" type="log4net.Appender.RollingFileAppender">
        ...
    </appender>
    <appender name="teams" type="log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams">
        <WebhookUrl value="https://tecalliance.webhook.office.com/webhookb2/a8277821-7bff-4750-a3f7-b087370ca527@91262959-85ec-4b1c-b7d3-7c3aac19c595/IncomingWebhook/dc97de2cc86a43f99e6c5407cfa2062f/1ac4dbd6-de16-4fe5-aa26-9925c6fe9d4c" />
        <titleLayout>
            <conversionPattern value="Title - %p: %date [%c]" />
        </titleLayout>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5level %logger - %message" />
        </layout>
    </appender>
</log4net>

AssemblyInfo.cs 文件: 我添加了这一行:
[程序集:log4net.Config.XmlConfigurator(ConfigFile = "log4net.development.config")]

Startup.cs:

        private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        public Startup(IConfiguration configuration, IHostingEnvironment env)
        {
            Configuration = configuration;
            HostingEnvironment = env;
            Log.Warn("TestLog");
            Console.ReadLine();
        }

但我总是在这里收到此错误:System.IO.FileNotFoundException:找不到文件或程序集“log4net.Microsoft Teams”或其依赖项。系统找不到指定的文件。文件名:log4net.MicrosoftTeams
我能做些什么?

I'm currently trying to add a Microsoft Teams appender to my project.
I have the following project structure:
project structure
I want to add the appender in my log4net.development.config, so I tried it in this way here:
log4.development.config file:

<log4net debug="true">
    <root>
        <level value="WARN" />
        <appender-ref ref="AdoNetAppender" />
        <appender-ref ref="teams" />
    </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="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
        ...
    </appender>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        ...
    </appender>
    <appender name="console" type="log4net.Appender.ConsoleAppender">
        ...
    </appender>
    <appender name="file" type="log4net.Appender.RollingFileAppender">
        ...
    </appender>
    <appender name="teams" type="log4net.MicrosoftTeams.MicrosoftTeamsAppender, log4net.MicrosoftTeams">
        <WebhookUrl value="https://tecalliance.webhook.office.com/webhookb2/a8277821-7bff-4750-a3f7-b087370ca527@91262959-85ec-4b1c-b7d3-7c3aac19c595/IncomingWebhook/dc97de2cc86a43f99e6c5407cfa2062f/1ac4dbd6-de16-4fe5-aa26-9925c6fe9d4c" />
        <titleLayout>
            <conversionPattern value="Title - %p: %date [%c]" />
        </titleLayout>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5level %logger - %message" />
        </layout>
    </appender>
</log4net>

AssemblyInfo.cs file:
I added this line:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.development.config")]

Startup.cs:

        private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        public Startup(IConfiguration configuration, IHostingEnvironment env)
        {
            Configuration = configuration;
            HostingEnvironment = env;
            Log.Warn("TestLog");
            Console.ReadLine();
        }

But I'm always getting this error here: System.IO.FileNotFoundException: The file or assembly "log4net.Microsoft Teams" or a dependency of it was not found. The system cannot find the specified file. File name: log4net.MicrosoftTeams
What can I do?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别靠近我心 2025-01-17 19:22:42

确保安装以下两个 NuGet 包:

  • log4net
  • log4net.MicrosoftTeams

Make sure you install both of the following NuGet packages:

  • log4net
  • log4net.MicrosoftTeams
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文