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