【问题标题】:Serilog sink for OracleOracle 的 Serilog 接收器
【发布时间】:2020-06-02 02:17:59
【问题描述】:

我一直在寻找用于连接到 Oracle 的 serilog 接收器,但没有找到任何人。有什么方法可以连接 Oracle 数据库吗?

如果没有,至少可以连接MySql吗??

谢谢,

【问题讨论】:

    标签: oracle serilog


    【解决方案1】:

    以下是我使用 Serilog 登录 Oracle 数据库的 dotnet core api POC 中的 sn-p。

    首先下载需要的包——

    dotnet add package Serilog.AspNetCore
    
    dotnet add pacakage Serilog.Settings.Configuration
    
    dotnet add package Serilog.Sinks.Oracle
    

    使用 Program.cs 类中的代码

    using Serilog;
    

    Main 方法中的代码 -

       var connectionString =
            @"user id=system;password=oracle;data source=
            (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = localhost)
            (PORT = 49161)))(CONNECT_DATA=(SERVICE_NAME = xe)))";
    
            Log.Logger = new LoggerConfiguration()
                        .MinimumLevel.Information()
                        .WriteTo.Oracle(cfg =>
                        cfg.WithSettings(connectionString)
                        .UseBurstBatch()
                        .CreateSink())
                        .CreateLogger();
             Log.Information("Writing Logs in Oracle Database...")
    

    【讨论】:

      【解决方案2】:

      目前没有适用于 Oracle 和 MySql 的 Serilog Sink。

      您最好的选择是基于 MS SQL Server Sink:https://github.com/serilog/serilog-sinks-mssqlserver 为您的目标数据库使用正确的 ADO .NET 连接器编写一个。

      应该很容易。

      【讨论】:

      • 其实不容易,我试过了。 OracleBulkCopy 不会插入到具有触发器的表中。我尝试使用触发器通过序列来增加 ID 主键。因此,我尝试使用 guid,结果证明这很困难,因为您在 oracle 中将 guid 存储为 RAW(16),而在 c# 中将其放入字节数组中。我无法让 Oracle 将该 id 列(存储为 System.Byte[])映射到原始数据。这意味着复制 MS SQL Server 接收器不会那么简单,而不是无法完成。不知道我是否会继续努力。
      【解决方案3】:

      Serilog sink for oracle 现已推出

      新的 oracle 接收器是 netstandard2 库,以提供一种干净的方式将 Serilog 事件发送到 Oracle 11(也可能是 12)。

      您可以参考以下链接以获得更多想法

      https://github.com/lucascebertin/Serilog.Sinks.Oracle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多