Logging cf.net异常和其他日志记录

Logging cf.net异常和其他日志记录,logging,windows-mobile,compact-framework,log4net,Logging,Windows Mobile,Compact Framework,Log4net,我想为运行在WM6 Pro上的cf.net应用程序添加一些日志功能。我正在研究日志异常和一些更敏感的代码部分。我希望将日志存储在本地(即设备上),并将它们可靠地上传到服务器(它们需要排队,我的应用程序偶尔连接) 有人知道这是否可能与log4net一起实现,或者我必须编写自己的日志系统吗?有人有任何指示吗?这是可能的。只需编写自定义appender,检查服务器是否可用,如果不可用,则将数据存储在sqlite中 SQL CE(精简版)支持复制。您可以在本地存储异常,然后在连接时将本地数据存储与中央服

我想为运行在WM6 Pro上的cf.net应用程序添加一些日志功能。我正在研究日志异常和一些更敏感的代码部分。我希望将日志存储在本地(即设备上),并将它们可靠地上传到服务器(它们需要排队,我的应用程序偶尔连接)


有人知道这是否可能与log4net一起实现,或者我必须编写自己的日志系统吗?有人有任何指示吗?

这是可能的。只需编写自定义appender,检查服务器是否可用,如果不可用,则将数据存储在sqlite中


SQL CE(精简版)支持复制。您可以在本地存储异常,然后在连接时将本地数据存储与中央服务器同步。一些详细信息。

如果使用log4net进行此操作,请不要使用UDP appender选项登录到远程服务器。如果WM设备通过ActiveSync连接到PC并通过PC访问网络,尝试使用UDP将导致ActiveSync崩溃,需要重新启动PC并软重置WM设备。我有一个演示因为这个(我们失去了一个巨大的合同)出了可怕的错误


log4net在其他环境中可能很棒,但我发现它是一个PITA,不值得在windowsmobile中麻烦。最好编写自己的简单Logger类,该类使用TextWriter将信息转储到文本文件(用于本地日志记录)或在远程服务器上调用webservice函数。您可以完全控制在何处写入内容,并且您不需要任何链锯废话来读取日志。

我会避免这种方法。写入SQL CE数据库比写入文本文件更容易失败,而且(尽管MS没有宣传这一点)在复制过程中断开网络连接时(移动设备中经常发生这种情况),SQL CE复制是不可靠的。感谢您的输入Dave,但我同意MusiGenesis。我主要感兴趣的是SQLCE和SQLCE复制问题:)啊,移动开发的乐趣和人们将桌面库移植到CF的黑客行为。谢谢MusiGensis。我在考虑将每个事件输出到一个文件夹中的xml文件中,该文件夹中有一个完全独立的exe,只是偶尔唤醒设备并将文件发送到webservice(CE中没有文件通知)。我想我也可以从我的代码中启动exe。