Orchard CMS如何进行日志记录?

And*_*kov 9 asp.net asp.net-mvc logging log4net orchardcms

我正在使用Orchard CMS,对我来说它是更好的CMS.我想了解它是如何进行日志记录的,以及我是否可以添加自己的日志记录.我看到Orchard使用了NullLogger课程,但没有用.我打开了App_Data.Logs文件夹,看到有日志文件.但是怎么样?我在代码中搜索了替换NullLoggerlog4net 的技巧(我猜这是log4net,因为日志格式和log4net.config的格式非常相似)但我还没有找到.有人可以回答我:

  1. Orchard如何进行伐木?
  2. 我是否可以添加自己的记录器,如果是,还有哪些最佳实践可以执行此操作?

谢谢,安德烈.

Pio*_*myd 16

一个Autofac模块(Orchard.Logging.LoggerModule准确地说)处理它.基本上 - 它扫描每个依赖项并ILogger使用对适当的记录器实例的引用来填充类型的所有属性.每个依赖项都有自己的记录器,其名称等于包含类的完整类型名称(包括名称空间).

NullLogger就是这么访问属性不会抛出一个占位符NullReferenceException年代以前是由Autofac设置的属性.

扩展默认日志记录是一项相当复杂的任务,因为它涉及到三件事:

  • 创建ILoggerFactory的自定义实现(就像默认的Orchard.Logging.CastleLoggerFactory)和
  • 创建一个Autofac模块,在容器中注册该实现(如上所述LoggerModule)
  • 通过装饰新的日志记录模块抑制当前的默认日志记录模块[OrchardSuppressDependency("Orchard.Logging.LoggingModule")]

UPDATE

刚刚意识到我没有解决问题中最重要的部分:)是的,Orchard使用log4net,因此您可以通过Config/log4net.config文件更改默认设置.