我正在和Orchard CMS合作,对我来说是更好的CMS.我想了解它是如何进行日志记录的,以及是否可以添加自己的日志记录.我看到Orchard使用NullLogger类,它没有工作.我打开了App_Data.Logs文件夹,并看到有日志文件.但是怎么样我在代码中搜索用log4net替换NullLogger的技巧(我猜这是log4net,因为log4net.config的日志格式和格式非常相似),但是我还没有找到.
有人可以回答我:
有人可以回答我:
Orchard如何做日志记录?
>我是否可以添加自己的记录器,如果是,是否有最佳实践呢?
谢谢,安德烈.
解决方法
Autofac模块(Orchard.Logging.LoggerModule要精确)处理.基本上,它扫描每个依赖关系,并使用适当的记录器实例的引用来填充类型为ILogger的所有属性.每个依赖项都拥有自己的名称等于包含类的完整类型名称(包括命名空间)的记录器.
NullLogger只是一个占位符,所以在Autofac设置属性之前,访问该属性将不会抛出NullReferenceExceptions.
扩展默认日志记录是一项相当复杂的任务,因为它将涉及三件事情:
>创建ILoggerFactory的自定义实现(就像默认的Orchard.Logging.CastleLoggerFactory)和
>创建一个在容器中注册该实现的Autofac模块(像上述的LoggerModule)
>通过使用[OrchardSuppressDependency(“Orchard.Logging.LoggingModule”)装饰新的日志模块来抑制当前的默认日志记录模块]
UPDATE
刚才意识到我没有在这里讨论问题的最重要部分:)是的,Orchard使用log4net,以便您可以通过Config / log4net.config文件更改默认设置.