ASP.NET中使用Apache log4net
点击次数:25 次 发布日期:2008-11-26 12:45:53 作者:源代码网
|
源代码网推荐 源代码网推荐 log4net系统划分了7个日志等级,如设置为"WARN",则DEBUG,INFO不会被记录。如下: 源代码网推荐 源代码网推荐 1. ALL 源代码网推荐 源代码网推荐 2. DEBUG 源代码网推荐 源代码网推荐 3. INFO 源代码网推荐 源代码网推荐 4. WARN 源代码网推荐 源代码网推荐 5. ERROR 源代码网推荐 源代码网推荐 6. FATAL 源代码网推荐 源代码网推荐 7. OFF 源代码网推荐 源代码网推荐 Creating the Sample Application 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Step 1: 下载log4net 源代码网推荐 源代码网推荐 去logging.apache.org/log4net,来获取他们的最近版,在例子里我用的是incubating-log4net-1.2.9-beta.zip,期待正式版。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Step 2: 创建 ASP.NET Web 应用程序 源代码网推荐 源代码网推荐 创建这个就不多说了,在log4net-1.2.0-beta8in et如图。找到对应的dll,添加到引用里。有的版本没有编译好的dll,那就自己编一下吧,用.NET V1.0的那个版本转换成1.1或2.0的。我觉得这不是工作失误,是故意的。他们玩java玩惯了的人好多都是这样。 源代码网推荐 源代码网推荐 Configuring the Sample Application 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Step 3: 添加Assembly信息 源代码网推荐 源代码网推荐 打开AssemblyInfo.cs文件,添加: 源代码网推荐 源代码网推荐 [assembly: log4net.Config.DOMConfigurator()] 源代码网推荐 这句话的意思是log4net系统会自动寻找配置文件Web.config从而获得并加载其中的配置信息。如果想log4net随时监视配置文件以便重新加载的话就 源代码网推荐 稍微麻烦点了要这样写: 源代码网推荐 源代码网推荐 源代码网推荐 [assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)] 源代码网推荐 源代码网推荐 Step 4: 添加配置信息 源代码网推荐 源代码网推荐 要编辑Web.config文件了,真是每次看见它都有惊喜啊。找到configuration标签,configSections要紧挨着写到它下面(一点都不替别人考虑,要在有一个也跟他一样霸道怎么办?那就单写个它的日志配置文件吧!我估计APACHE他们就是这么想的)。看看例子吧: 源代码网推荐 源代码网推荐 源代码网推荐 <?xml version="1.0" encoding="utf-8" ?> 源代码网推荐 源代码网推荐 <configuration> 源代码网推荐 源代码网推荐 <configSections> 源代码网推荐 源代码网推荐 <section name="log4net" 源代码网推荐 源代码网推荐 type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" 源代码网推荐 源代码网推荐 /> 源代码网推荐 源代码网推荐 </configSections> 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 <!-- This section contains the log4net configuration settings --> 源代码网推荐 源代码网推荐 <log4net> 源代码网推荐 源代码网推荐 <!-- Define some output appenders --> 源代码网推荐 源代码网推荐 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 源代码网推荐 源代码网推荐 <layout type="log4net.Layout.PatternLayout"> 源代码网推荐 源代码网推荐 <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" /> 源代码网推荐 源代码网推荐 </layout> 源代码网推荐 源代码网推荐 </appender> 源代码网推荐 源代码网推荐 <!-- RollingFileAppender looks after rolling over files by size or date --> 源代码网推荐 源代码网推荐 <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 源代码网推荐 源代码网推荐 <param name="File" value="C:\log\RollingLogHelloWorld.log" /> 源代码网推荐 源代码网推荐 <param name="AppendToFile" value="true" /> 源代码网推荐 源代码网推荐 <param name="MaxSizeRollBackups" value="10" /> 源代码网推荐 源代码网推荐 <param name="MaximumFileSize" value="1000" /> 源代码网推荐 源代码网推荐 <param name="RollingStyle" value="Size" /> 源代码网推荐 源代码网推荐 <param name="StaticLogFileName" value="true" /> 源代码网推荐 源代码网推荐 <layout type="log4net.Layout.PatternLayout"> 源代码网推荐 源代码网推荐 <param name="ConversionPattern" value="%d [%t] %-5p %-45c [%x] - %m%n" /> 源代码网推荐 源代码网推荐 </layout> 源代码网推荐 源代码网推荐 </appender> 源代码网推荐 源代码网推荐 <!-- FileAppender appends to a log and it is manually managed or size --> 源代码网推荐 源代码网推荐 <appender name="FileAppender" type="log4net.Appender.FileAppender"> 源代码网推荐 源代码网推荐 <param name="File" value="LogHelloWorld.log" /> 源代码网推荐 源代码网推荐 <!-- Example using environment variables in params --> 源代码网推荐 源代码网推荐 <!-- <param name="File" value="${TMP}\ApplicationKit.log" /> --> 源代码网推荐 源代码网推荐 <param name="AppendToFile" value="true" /> 源代码网推荐 源代码网推荐 <layout type="log4net.Layout.PatternLayout"> 源代码网推荐 源代码网推荐 <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> 源代码网推荐 源代码网推荐 </layout> 源代码网推荐 源代码网推荐 </appender> 源代码网推荐 源代码网推荐 <!-- Setup the root category, add the appenders and set the default level --> 源代码网推荐 源代码网推荐 <root> 源代码网推荐 源代码网推荐 <level value="INFO" /> 源代码网推荐 源代码网推荐 <appender-ref ref="ConsoleAppender" /> 源代码网推荐 源代码网推荐 </root> 源代码网推荐 源代码网推荐 <!-- ApplicationKit category - the presentation UI --> 源代码网推荐 源代码网推荐 <logger name="WebForm1"> 源代码网推荐 源代码网推荐 <level value="INFO" /> 源代码网推荐 源代码网推荐 <appender-ref ref="FileAppender" /> 源代码网推荐 源代码网推荐 </logger> 源代码网推荐 源代码网推荐 </log4net> 源代码网推荐 源代码网推荐 </configuration> 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 注意Logger节点的NAME属性设的是WebForm1,这里指的是类名。要给每一个需要添加LOG的类都添加一个这样的节点。想起了OSWORKFLOW工作流了,灵活与方便实用往往不可兼得。这里的级别是INFO,也就是说,INFO以下的不会被记录。 源代码网推荐 源代码网推荐 Running the Sample Application 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Step 5: 添加一个 Log 类 源代码网推荐 源代码网推荐 首先是添加引用 源代码网推荐 源代码网推荐 using log4net;using log4net.Config; //然后是实例化如果认真研究了配置文件,那么这个声明方式就很好理解了:private static readonly ILog log = LogManager.GetLogger("WebForm1"); 源代码网推荐 源代码网推荐 源代码网推荐 Step 6: 使用 Log对象 源代码网推荐 源代码网推荐 到了现在,所有的配置工作都已经完成了,接下来的工作就是测试一下,把他和应用层连起来。随便加一个按钮在响应事件Button1_Click event handler.中添加 源代码网推荐 源代码网推荐 源代码网推荐 log.Info("Hello World, I am a logger"); 源代码网推荐 源代码网推荐 源代码网推荐 Step 7: Run the Application 源代码网推荐 源代码网推荐 现在可以运行了,应该是个这样子的: 源代码网推荐 源代码网推荐 这样每次点击按钮,在日至文件中就会出现 源代码网推荐 源代码网推荐 2006-02-13 10:12:30,671 [1228] INFO WebForm1 [] - Hello World, I am a logger这样一条记录。 源代码网推荐 源代码网推荐 源代码网推荐 总结: 源代码网推荐 源代码网推荐 简单易用,过一阵再研究SQL日志吧,DB才素王道,呵呵。 源代码网推荐 源代码网推荐 更多信息参见http://logging.apache.org/log4net/ 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
