logging - 如何将我当前的日志基础设施与 Kephas 集成?
问题描述
我目前的项目需要重新架构,到目前为止,我喜欢 Kephas 如何为应用程序设置基础(获得 MIT 许可对于评估它至关重要)。但是,我们应该循序渐进地做事,否则恐怕我们会失去对项目的控制。日志记录(我们使用 ELMAH)无处不在,恐怕我们不能到处使用 DI/composition 来替换日志调用,因此我们需要保留现有代码。
我必须做些什么才能让 Kephas 与现有的日志基础设施配合得很好,但又不必复制它?
解决方案
就像在 DI/IoC 中一样,我们在抽象之上构建了一切,包括日志记录。因此,我们在内部确实依赖于ILogManager
和ILogger
接口,但它们背后的内容取决于您。我们目前仅实现了 NLog 和 Log4Net 适配器,但在您的情况下,应该只需要几行代码即可支持其他日志框架,如 ELMAH。
ELMAH 支持的步骤如下:
- 定义 ElmahLogManager 和 ElmahLogger 类。
- 定义扩展方法以将此日志管理器添加到应用程序引导过程中的环境服务。
- 配置 Kephas 环境服务以使用您的 ELMAH 日志管理器。
查看https://github.com/kephas-software/kephas/tree/master/src/Kephas.Logging.NLog以获取有关如何创建适配器的示例以及如何使用它们的示例 ()。
推荐阅读
- flutter - 在不使用 MaterialApp 的情况下向 Widget 添加本地化?
- tsql - 如何通过我的存储过程减少 DTU 使用率
- sql - 将 Oracle DATE 转换为 Unix 风格的时间(自 1906 年以来的秒数?)
- java - 尝试在空对象引用上调用 checkPermission 的虚拟方法
- jquery - 平移和缩放图像插件
- haskell - 如何在函数内部的 Haskell 中将某些内容转换为字符串
- excel - 根据列值将列内容重复“n”行
- hibernate - JPARepository:deleteAll() 上没有发生任何事情;deleteAllInBatch() 作品
- python - AWS CDK ssm.CfnAssociation 定义参数
- aws-lambda - 如何使用 SAM 模板 cloudformation 在不同的 aws 帐户中调用 lambda