Serilog 匹配 log4net DB Logger

问题描述

我一直在为我的 MVC 5 项目使用 log4net,这里是 appender:

<appender name="AsyncDBAppender" type="DA.Systems.Focus.Shared.Logcore.Asynchronousadonetappender,Focus-Shared-Logcore">
    <bufferSize value="1" />
    <connectionType value="System.Data.sqlClient.sqlConnection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
    <connectionString value="data source=DB_Server;initial catalog=LogCentral ;persist security info=True;user id=log_man;password=*******;MultipleActiveResultSets=True;Connect Timeout=360;App=Service Internal - log4net" />
    <commandText value="INSERT INTO [dbo].[MainLog] ([ProjectId],[ApplicationId],[MachineName],[OperationId],[UserId],[Date],[Thread],[Level],[Logger],[Message],[Exception])
                                             VALUES (1,1,@machineName,@operationId,@userId,@logDate,@thread,@logLevel,@logger,@message,@exception)" />
    <parameter>
        <parameterName value="@machineName" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property{log4net:HostName}" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@operationId" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property{OperationId}" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@userId" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property{UserId}" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@logDate" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
    </parameter>
    <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="32" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%t" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="512" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%p" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="512" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%c" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%m" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@exception" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.ExceptionLayout" />
    </parameter>
</appender>

继续前进,我们已经转移到 Blazor 服务器端。由于 log4net 现在是一个死项目,我决定使用 Serilog。它带有自己的写入数据库的机制,我正在尝试从 log4net 写入同一个表。可以这样做吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)