我一直在寻找一个用于连接Oracle的serilog接收器,但没有找到任何人。有没有办法连接Oracle数据库?
如果没有,可以至少连接MySql ??
谢谢,
答案 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)的干净方法。
您可以参考下面的链接以获取更多想法
答案 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...")