我最近遇到理论上操作完成的情况,但是记录器未能向文件写入一些信息(没有对日志文件夹的写访问权限)并且操作被报告为失败(甚至应用程序因异常而崩溃) )。在我的项目中,我们经常使用像
这样的代码try { /*Business logic*/}
catch (BusinessLogicEx1) {...}
catch (BusinessLogicEx2) {...}
catch (SomeKindOfException ex)
{
LogThisException(ex);
}
如果日志由于某种原因不可用怎么办?你通常如何对待这种情况?你以某种方式通知用户吗?
答案 0 :(得分:1)
我在开始时检查日志路径,文件可用性和文件访问权限,以确保这些事情不会发生很多..如果您仍然遇到锁定/不可用的文件
如果没有Gui可用,我会写一个Windows事件条目
System.Diagnostics.EventLog appLog = new System.Diagnostics.EventLog();
appLog.Source = "This Application's Name";
appLog.WriteEntry("An entry to the Application event log.");
在大型项目中,配置管理在开始时进行检查并记住错误,因此当应用程序以管理员模式执行时,它可以显示发生的任何内部错误
最佳解决方案取决于您的方案
答案 1 :(得分:1)
你尽力降温。尝试简化日志,尝试使用不同的API等登录备用目标。如果可能,请对消息进行排队,以便以后记录。这真的归结为你愿意付出多少努力,多么重要。并且尽量不要让糟糕的情况变得更糟(通过尝试 hard 来记录更多问题/崩溃应用程序)。
有趣的问题是是否通知用户。考虑:
我希望这证明只有你能回答这个问题,知道你的应用程序做了什么以及如何使用。就我个人而言,我必须清楚地通知用户,就像我必须默默登录的情况一样,以及某些情况下代码必须通过电话回家#'并将问题报告给 me 。