C# 在使用自定义Log4Net appender时是否可以访问服务类?

C# 在使用自定义Log4Net appender时是否可以访问服务类?,c#,asp.net-mvc,entity-framework,log4net,log4net-appender,C#,Asp.net Mvc,Entity Framework,Log4net,Log4net Appender,我们目前使用Log4Net来编写日志文件——我们还想写入SQL数据库,但我希望制作一个自定义适配器,这样我们就可以避免将SQL转储到web.config中,并使日志对象适合我们的需要 我认为创建和实现通用自定义appender的步骤并不太难,但由于我们通常为需要访问数据库的任何内容实现一个服务类,因此我对如何开始这项工作感到困惑。该服务类初始化我们的repo代码,以便通过实体框架访问数据库,并保存有关当前上下文的数据,因此,为了访问数据库并保存有意义的数据,我需要访问这些数据 问题是,我不确定如

我们目前使用Log4Net来编写日志文件——我们还想写入SQL数据库,但我希望制作一个自定义适配器,这样我们就可以避免将SQL转储到web.config中,并使日志对象适合我们的需要

我认为创建和实现通用自定义appender的步骤并不太难,但由于我们通常为需要访问数据库的任何内容实现一个服务类,因此我对如何开始这项工作感到困惑。该服务类初始化我们的repo代码,以便通过实体框架访问数据库,并保存有关当前上下文的数据,因此,为了访问数据库并保存有意义的数据,我需要访问这些数据

问题是,我不确定如何实现这两种功能—您需要为定制Log4Net appender类实现AppenderSkleton,但我们还需要实现服务类,以便访问数据库/应用程序上下文方法

可能有一种方法可以使用接口实现这一点,因为您只能实现一个类,但可以实现接口的任何组合,但我不确定这将如何工作

最终,我希望在我们项目的.Core部分中实现这一点,它包含一个asp.NET MVC Web应用程序、一个命令行应用程序、一个windows服务,以及通过两个程序集(一个服务和一个核心程序集)进行访问


有什么想法吗?

很固执,但是为什么不切换到Serilog呢?在Serilog中,同时记录文件和SQL(以及您想要的任何内容)只需使用相关的文件位置/SQL连接字符串添加适当的接收器即可?