在Windows Mobile 6.5.3 CF 3.5中记录异常和事件

时间:2013-05-09 16:13:22

标签: error-logging windows-mobile-6.5 .net-cf-3.5

我正在MC9190设备(CF 3.5)上编写Windows mobile(6.5.3)应用程序。我想记录某些事件(例如用户登录信息)并发生任何运行时异常。我怎样才能做到这一点? 我尝试使用此示例http://breathingtech.com/2009/using-apache-log4net-in-net-compact-framework-projects/中的log4net 但是不支持CF 3.5。 (http://logging.apache.org/log4net/release/framework-support.html)。 如何在应用程序中记录事件/异常? CF 3.5是否有可用的标准日志框架? 谢谢。

1 个答案:

答案 0 :(得分:1)

编写简单的日志记录并不难。无论您实施哪种日志记录,都需要为要记录的每个异常或事件添加一行。 Log4Net和其他框架是完整的,并且支持Compact Framework上无法使用的技术(即记录到系统事件日志)。所以你必须自己决定,是否值得使用一个框架,你不能使用完整框架中支持的大部分功能。

还有一些更简单的日志工具:http://blogs.msdn.com/b/davidklinems/archive/2006/08/17/704662.aspx

另请参阅:Logging Library for .NET Compact Framework?

log4net的问题及其紧凑的框架支持是大部分时间都没有维护(与其他开源库一样)。

为紧凑型框架获取有效的log4net非常简单:

  • 打开log4.net src / log4net.vs2008.sln
  • 添加一个新的SmartDevice类库项目(WM5 SDK和CF2没问题)并将其命名为log4netCF
  • 删除现有的class1.cs文件
  • 更改项目属性: enter image description here 程序集名称和默认名称空间=“log4net”

  • 现在只需右键单击解决方案资源管理器中log4net.vs2008项目中的每个源代码文件夹,然后选择复制,然后右键单击log4netCF项目并选择粘贴 对每个文件夹重复此操作:

    • Appender,
    • 配置,
    • 核心,
    • DateFormatter,
    • 过滤器,
    • 布局,
    • ObjectRenderer,
    • 插件,
    • 存储库,
    • 的Util
  • 还复制单个文件:

    • 的AssemblyInfo.cs
    • AssemblyVersionInfo.cs
    • GlobalContext.cs
    • ILog.cs
    • LogicalThreadContext.cs
    • LogManager.cs
    • MDC.cs
    • NDC.cs
    • ThreadContext.cs

    从log4net.vs2008进入log4netCF项目。

  • 删除log4netCF项目中的Properties / AssemblyInfo.cs
  • 将PocketPC; NETCF_2_0; NETCF添加到log4netCF的构建选项中 enter image description here

现在右键单击log4netCF项目并选择Build。它应该构建没有任何错误,你有一个工作的Compact Framework 2.0 log4net程序集。

项目文件的下拉列表可在www.hjgode.de/temp/log4netCF.csproj上找到。只需下载并将log4net的subversion副本放入log4net.vs2008.csproj文件旁边的src文件夹中即可。