针对Oracle的Serilog接收器

时间:2015-11-16 16:37:15

标签: oracle serilog

我一直在寻找一个用于连接Oracle的serilog接收器,但没有找到任何人。有没有办法连接Oracle数据库?

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

谢谢,

3 个答案:

答案 0 :(得分:0)

目前还没有针对Oracle和MySql的Serilog Sink。

最好的办法是,根据MS SQL Server接收器编写一个:https://github.com/serilog/serilog-sinks-mssqlserver,使用正确的ADO .NET连接器作为您要定位的数据库。

应该很容易。

答案 1 :(得分:0)

用于Oracle的Serilog Sink现在可用

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

您可以参考下面的链接以获取更多想法

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

答案 2 :(得分:0)

以下是我的dotnet核心api POC中的代码段,在该代码段中,我使用Serilog登录到Oracle数据库。

首先下载所需的软件包-

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...")