【发布时间】:2011-01-29 01:22:37
【问题描述】:
免责声明:我不是 C++ 开发人员,我只能做一些基本的事情。 (我懂指点,只是我的知识太生疏了,20年没碰c/c++了:))
设置:我有一个 Outlook 插件,用 C#/.Net 1.1 编写。它使用c++ shim 来加载。
通常,这很好用,我在我的 c# 代码中使用 nlog 来记录日志。但有时,插件无法加载,i.t.它根本没有命中托管代码,让我能够从日志文件中调查问题。
所以,我需要将一些基本的日志记录挂接到 c++ shim 中 - 只需写入文件即可。我需要让我们的用户启用它尽可能简单。其实我宁愿不默认发货。
我正在考虑一些事情,它将检查是否存在特定的 dll(日志记录 dll),如果存在,则使用它。否则,它不会记录任何内容。这样,当我有一个用户遇到这样的问题时,我可以只给他发送日志 dll,用户将它保存在运行时目录中,我将拥有该文件。
我想这必须通过某种形式的工厂解决方案来完成,它返回一个虚拟记录器,或者如果找到了 dll,则返回一个真实记录器。
另一种选择是制作一些简单的记录器,并根据指令使用或不使用它来重建 shim。这不是理想的方法,因为需要对 shim 进行签名,并且我必须指示用户制作“真实”的备份副本,然后在完成后恢复等,而不仅仅是保存和删除 dll .
如果有任何好的建议如何处理它,以及如何处理它的链接或示例代码,我将不胜感激。
干杯
【问题讨论】:
标签: c++ file logging conditional