wince平台下使用log4net记录日志
前面我写过一篇文章是来介绍windows平台下开发软件使用log4net来记录日志的,详情请参考:用一个简单的示例说明日志记录组件log4net的使用。
我们在wince平台下开发程序也一样需要日志文件的记录。log4net也可以使用,下面我来介绍log4net如何在wince平台下使用。
测试环境
开发工具:VS2008,智能项目,form项目。开发环境:.net compact framework 3.5 开发语言:C#
本文不是教你全面了解log4net,仅仅是希望通过本文你可以在wince环境下记录下你该记录的日志,就ok。
废话少说,直接来步骤。
第一步
下载官方的dll,最新版本下载地址,请点击log4net最新版本下载。
第二步
下载后选择正确的log4net的dll,以备我们项目来使用。下载下来后我们解压开,然后找到我们相应的……\log4net-1.2.11-bin-newkey\log4net-1.2.11\bin\netcf\2.0\release目录下的log4net.dll,这就是我们使用的主角。
第三步
配置log4net的配置文件,声明一句,在wince平台下是没有config文件的,因此我们使用xml文件来配置。配置内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration> <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.2" />
</configSections> <log4net>
<logger name="MyLog">
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="LogFileAppender" />
</logger> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="MyLog.Log" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender> </log4net>
</configuration>
我把配置文件的名字命名为:log4netConfig.xml,在下面的代码中会使用。
第四步
开始使用log4net,在使用的过程中和在windows平台下不一样。原来的解释是这样的:
/// <remarks>
/// <para>
/// The .NET Compact Framework does not support retrieving assembly-level
/// attributes, therefor log4net must be configured by code.
/// </para>
/// <para>
/// The .NET Compact Framework does not support hooking up the <c>AppDomain.ProcessExit</c>
/// and <c>AppDomain.DomainUnload</c> events, so log4net must be shutdown manually to
/// free all resources.
/// </para>
/// </remarks>
我英语不怎么样,但是我来简单翻译一下,.net cf不支持在Assembly的atrributes,所以配置什么的都要在代码中操作。
而且我们必须手动的停止log4net的一切资源。
下面来看一下我写的代码:
using System;
using System.IO;
using System.Reflection;
using System.Windows.Forms; namespace Log4netDemo
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[MTAThread]
static void Main()
{
//在program文件中配置
string configPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase),
"log4netConfig.xml");
FileInfo fileInfo=new FileInfo(configPath);
log4net.Config.XmlConfigurator.Configure(fileInfo);
Application.Run(new LogForm());
}
}
}
using System.Threading;
using System.Windows.Forms;
using log4net;//记得引用我们的log4net.dll否则会报错 namespace Log4netDemo
{
/// <summary>
/// 调用log4net的窗体
/// </summary>
public partial class LogForm : Form
{
public LogForm()
{
InitializeComponent();
} private void btnStart_Click(object sender, System.EventArgs e)
{
ILog logger = LogManager.GetLogger("MyLog");
int i = 0;
while (true)
{
logger.Debug("Hello, Log4Net..."); i++;
Thread.Sleep(500);
if (i==100)
{
break;
}
}
LogManager.Shutdown();//手动的释放资源
}
}
}
让我们看一下简单的窗体:
[caption id="attachment_1177" align="alignnone" width="238"]
log4net窗体[/caption]
[caption id="attachment_1178" align="alignnone" width="600"]
log4net运行结果[/caption]
[caption id="attachment_1179" align="alignnone" width="600"]
日志内容[/caption]
wince平台下使用log4net记录日志的更多相关文章
- WinCE平台的程序编译到Win32平台下运行
最近做的项目中,有一个在WinCE平台上跑的程序,后来随着项目的发展,要求此程序在PC上也能跑.感谢VS 2005提供的多平台支持,只需要几分钟就可以解决这个问题,方法很简单,下面是我处理的过程. 1 ...
- C# 使用 log4net 记录日志
Ø 前言 在一般的开发应用中,都会涉及到日志记录,用于排查错误 或 记录程序运行时的日志信息.log4net 库是 Apache log4j 框架在 Microsoft .NET 平台的实现,是一个 ...
- Windows服务使用log4net记录日志
该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 比较流行的日志组件有以下四种,Topshelf都有相应的组件提供 log4net NL ...
- .NET平台下开源框架
一.AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(asp ...
- [转]C#使用Log4Net记录日志
第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-n ...
- X86平台下嵌入式linux触摸屏解决方案(usb触摸屏控制器+完美校准方案+触摸屏QTE开发环境搭建)
一直在用X86平台,真心不想用WINCE和XPE,一些大的硬件供应商都不提供linux平台下的技术支持,比如研华的3343PC104系列的板子... 开发的问题如下: 1 USB控制器目前只有台湾和竹 ...
- 在 WinCe 平台读写 ini 文件
在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数.在网络上我并没有找到令我满意的 ...
- MongoDB学习总结(一) —— Windows平台下安装
> 基本概念 MongoDB是一个基于分布式文件存储的开源数据库系统,皆在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB将数据存储为一个文档,数据结构由键值key=>val ...
- ASP.NET Core使用log4net记录日志
.NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...
随机推荐
- UINavigationController具体解释(二)
@UINavigationBar-----(是一个View)基本介绍 1.导航栏,和导航控制器一样,是一个容器用来显示提供的其它对象的内容 2.导航栏显示的内容,通过设置UINavigationIte ...
- swift:打造你自己的折线图
看到苹果Health里的折线图了吗.我们就是要打造一个这样的折线图.没看过的请看下图. 我们的主题在于折线图本身.其他的包括步数.日平均值等描述类的内容这里就不涉及了. 首先观察,这个图种包含些什么组 ...
- 比赛--找丢失的数--解题报告T
找丢失的数 题目大意: There is a permutation without two numbers in it, and now you know what numbers the perm ...
- 乐观锁&悲观锁
悲观&乐观,只是对数据加锁的时机与粒度. 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这 ...
- Android学习笔记:FrameLayout布局基础
FrameLayout布局的特点是:所有放在布局里的视图组件,都按照层次堆叠在屏幕的左上角,后面的视图组件覆盖前面的. 当然,组件本身是可以控制自己的内部布局的. 一种常见的场景是可以在FrameLa ...
- 基于visual Studio2013解决C语言竞赛题之0517矩阵
题目
- What’s New in Python 2.7 — Python 3.4.0b2 documentation
What's New in Python 2.7 - Python 3.4.0b2 documentation What's New in Python 2.7¶
- BZOJ 3011: [Usaco2012 Dec]Running Away From the Barn( dfs序 + 主席树 )
子树操作, dfs序即可.然后计算<=L就直接在可持久化线段树上查询 -------------------------------------------------------------- ...
- Web端的Tab控件在切换Tab时Load数据出错的处理
我们在应用Web端的Tab控件时,不管是Jquery easyui的还是Ext的Tab控件都会遇到一个问题,在Tab1正在加载数据的时候我们切换到Tab2,再切换回来,Load数据的控件就会出错,出错 ...
- PowerManager.WakeLock
PowerManager.WakeLock PowerManager.WakerLock是我分析Standup Timer源代码时发现的一个小知识点,Standup Timer 用WakeLock保证 ...