微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Serilog 匹配 log4net DB Logger

如何解决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 举报,一经查实,本站将立刻删除。