【发布时间】:2020-06-02 02:17:59
【问题描述】:
我一直在寻找用于连接到 Oracle 的 serilog 接收器,但没有找到任何人。有什么方法可以连接 Oracle 数据库吗?
如果没有,至少可以连接MySql吗??
谢谢,
【问题讨论】:
我一直在寻找用于连接到 Oracle 的 serilog 接收器,但没有找到任何人。有什么方法可以连接 Oracle 数据库吗?
如果没有,至少可以连接MySql吗??
谢谢,
【问题讨论】:
以下是我使用 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...")
【讨论】:
目前没有适用于 Oracle 和 MySql 的 Serilog Sink。
您最好的选择是基于 MS SQL Server Sink:https://github.com/serilog/serilog-sinks-mssqlserver 为您的目标数据库使用正确的 ADO .NET 连接器编写一个。
应该很容易。
【讨论】:
Serilog sink for oracle 现已推出
新的 oracle 接收器是 netstandard2 库,以提供一种干净的方式将 Serilog 事件发送到 Oracle 11(也可能是 12)。
您可以参考以下链接以获得更多想法
【讨论】: