1

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

如果没有,是否可以至少与 MySql 连接?

谢谢,

4

3 回答 3

2

以下是我使用 Serilog 登录 Oracle 数据库的 dotnet core api POC 的片段。

首先下载所需的包 -

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...")
于 2020-06-01T18:17:59.280 回答
0

用于 oracle 的 Serilog sink 现在可用

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

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

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

于 2019-11-18T08:16:14.833 回答
0

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

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

应该很容易。

于 2016-05-14T03:41:03.060 回答