我正在使用 Orchard CMS,它对我来说是更好的 CMS。我想了解它如何进行日志记录以及我是否可以添加自己的日志记录。我看到果园使用NullLogger
类,它不起作用。我已打开 App_Data.Logs 文件夹并看到其中有日志文件。但如何呢?我在代码中搜索了替换的技巧在哪里NullLogger
与 log4net (我猜这是 log4net,因为日志格式和 log4net.config 的格式非常相似),但我还没有找到这个。
有人可以回答我吗:
- Orchard 如何进行伐木?
- 我是否可以添加自己的记录器,如果可以,有哪些最佳实践可以做到这一点?
谢谢,安德烈。
Autofac 模块(Orchard.Logging.LoggerModule
准确地说)处理这个问题。基本上 - 它扫描每个依赖项并填充类型的所有属性ILogger
并引用适当的记录器实例。每个依赖项都有自己的记录器名称等于包含类的完整类型名称(包括命名空间).
The NullLogger
只是一个占位符,因此访问该属性不会抛出NullReferenceException
在 Autofac 设置属性之前。
扩展默认日志记录是一项相当复杂的任务,因为它涉及做三件事:
-
创建 ILoggerFactory 的自定义实现(就像默认的 Orchard.Logging.CastleLoggerFactory 一样)和
-
创建 Autofac 模块在容器中注册该实现(如提到的
LoggerModule
does)
-
抑制当前默认日志记录模块装饰你的新房
[OrchardSuppressDependency("Orchard.Logging.LoggingModule")]
UPDATE
刚刚意识到我没有在这里解决问题最重要的部分:)
是的,Orchard 使用 log4net所以你可以通过更改默认设置配置/log4net.config file.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)