存档:2009年, 九月

C#正则表达式基础

类别: Regex 发表评论

(1)“@”符号 “@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串 (2)基本的语法字符 \d 0-9的数字 \D \d的补集(以所以字符为全集,下同),即所有非数字的字符 \w单词字符,指大小写字母、0-9的数字、下划线 \W \w的补集 \s 空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f \S \s的补集 . 除换行符\n外的任意字符 […] 匹配[]内所列出的所有字符 [^…] 匹配非[]内所列出的字符 下面提供一些简单的示例: string i = "\n"; string m = "3"; Regex r = new Regex(@"\D"); //同Regex r = new Regex("\\D"); //r.IsMatch(i)结果:true //r.IsMatch(m)结果:false   string i = "%"; string m = "3"; Regex r = new Regex("[a-z0-9]"); [...]

Log4Net – .NET环境下log处理解决方案

类别: log 发表评论

1 实现目的  一个好的应用系统离不开log文件的支持,所以log文件的处理在应用系统的开发过程中是占很大比重的。log文件的处 理方法有很多种,采用一种功能强大且方法简单的处理方法,不但能保证log文件的输出质量,更能大大缩短系统开发和维 护的周期。本文介绍的.net环境下log文件处理解决方案,采用的是开源日志框架log4net。本文介绍的log4net基于 log4net-1.2.0版本。 2  log4net概述 log4net是一个辅助应用系统输出多种样式log信息的日志框架,它是著名的log4j框架在.net环境下的实现,在实际应 用中,可以采用和log4j类似的方法在.net环境下构建起一个功能强大的log处理系统。log4net和应用系统的结合不需要修 改应用系统本身的代码,它们之间的绑定非常简单,并且log4net处理log信息是和应用系统同步的,其处理速度和输出的 多样性也是其它任何log处理系统无法比拟的。log4net最有特色的地方是,它对log进行了分等级处理,这样应用系统可以 在实际运行环境下很简单的输出不同级别的log信息,帮助系统开发维护人员在最快的时间里得到最有用的系统log信息。 log4net处理log文件的方法是灵活多变的,它可以将log信息输出不同的样式和输出到不同的地方,如控制台 (Console),文本文件,XML文件,以流的形式发送到其它地方(如数据库),发送到电子邮件中,根据天数或者文件 大小产生新的文件等等。并且开发人员可以根据自己的喜好格式化log输出,如自由指定样式,可以包含log级别与log信息 ,包含log时间、线程、类别等信息的样式等等。 Log4net可以从http://logging.apache.org/log4net/download.html网站下载最新版本。 3  log4net 主要结构分析 Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。 3.1 Logger Logger是应用程序与log4net交互的主要模块,它也是log4net生成log的模块。Logger主要负责得到log信息,得到 log信息之后接下来的显示log则是在Layout模块中处理。 3.1.1 Logger的管理方式 Logger提供了多种方法用于记录任何类型的log信息,可以在应用程序中使用多个Logger实例,而把它们的维护工作 交给log4net框架作为“命名实体(Named Entity)”进行维护。这就意味着,不再需要将应用程序中生成的Logger实例作 为参数在应用程序中传递,以便应用程序中的其它模块能使用该实例。唯一需要做的就是通过Logger的命名来调用它。 目前,log4net使用类似.net命名空间的方式管理命名实体。例如,有两个Logger,分别定义为logger.First以及 logger.First.One。那么这两个是不同的Logger,而且logger.First是logger.First.One的祖先,同时logger.First.One继承 了logger.First的属性。位于命名空间最高层的Logger是默认Logger,也被称为根Logger(Root Logger)。 3.1.2 实现自己的Logger 如果要实现自己的Logger,那么log4net提供了接口ILog用于实现自己的Logger。ILog的大致结构如下: public interface Ilog { void Debug(object message); void Info(object message); void Warn(object [...]