仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 794|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计ASP.NET中利用Apache log4net

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。apache|asp.netlog4net是Apachelog4j的.net版,是一套XML设置型的日记引擎,恰好比来有个程序必要日记体系,为了整合便利,就决意研讨一下。感激郝伟保举。
log4net体系分别了7个日记品级,如设置为"WARN",则DEBUG,INFO不会被纪录。以下:
1.ALL
2.DEBUG
3.INFO
4.WARN
5.ERROR
6.FATAL
7.OFF
CreatingtheSampleApplication
Step1:下载log4net
往logging.apache.org/log4net,来猎取他们的比来版,在例子里我用的是incubating-log4net-1.2.9-beta.zip,等候正式版。
Step2:创立ASP.NETWeb使用程序
创立这个就未几说了,在log4net-1.2.0-beta8in
et如图。找到对应的dll,增加到援用里。有的版本没有编译好的dll,那就本人编一下吧,用.NETV1.0的谁人版本转换成1.1或2.0的。我以为这不是事情掉误,是存心的。他们玩java玩惯了的人很多多少都是如许。
ConfiguringtheSampleApplication
Step3:增加Assembly信息
翻开AssemblyInfo.cs文件,增加:
[assembly:log4net.Config.DOMConfigurator()]
这句话的意义是log4net体系会主动寻觅设置文件Web.config从而取得并加载个中的设置信息。假如想log4net随时监督设置文件以便从头加载的话就
略微贫苦点了要如许写:

[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)]
Step4:增加设置信息
要编纂Web.config文件了,真是每次瞥见它都有欣喜啊。找到configuration标签,configSections要紧挨着写到它上面(一点都不替他人思索,要在有一个也跟他一样强横怎样办?那就单写个它的日记设置文件吧!我估量APACHE他们就是这么想的)。看看例子吧:

<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<configSections>
<sectionname="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"
/>
</configSections>
<!--Thissectioncontainsthelog4netconfigurationsettings-->
<log4net>
<!--Definesomeoutputappenders-->
<appendername="ConsoleAppender"type="log4net.Appender.ConsoleAppender">
<layouttype="log4net.Layout.PatternLayout">
<paramname="ConversionPattern"value="%d[%t]%-5p%c[%x]<%X{auth}>-%m%n"/>
</layout>
</appender>
<!--RollingFileAppenderlooksafterrollingoverfilesbysizeordate-->
<appendername="RollingFileAppender"type="log4net.Appender.RollingFileAppender">
<paramname="File"value="C:logRollingLogHelloWorld.log"/>
<paramname="AppendToFile"value="true"/>
<paramname="MaxSizeRollBackups"value="10"/>
<paramname="MaximumFileSize"value="1000"/>
<paramname="RollingStyle"value="Size"/>
<paramname="StaticLogFileName"value="true"/>
<layouttype="log4net.Layout.PatternLayout">
<paramname="ConversionPattern"value="%d[%t]%-5p%-45c[%x]-%m%n"/>
</layout>
</appender>
<!--FileAppenderappendstoaloganditismanuallymanagedorsize-->
<appendername="FileAppender"type="log4net.Appender.FileAppender">
<paramname="File"value="LogHelloWorld.log"/>
<!--Exampleusingenvironmentvariablesinparams-->
<!--<paramname="File"value="${TMP}ApplicationKit.log"/>-->
<paramname="AppendToFile"value="true"/>
<layouttype="log4net.Layout.PatternLayout">
<paramname="ConversionPattern"value="%d[%t]%-5p%c[%x]-%m%n"/>
</layout>
</appender>
<!--Setuptherootcategory,addtheappendersandsetthedefaultlevel-->
<root>
<levelvalue="INFO"/>
<appender-refref="ConsoleAppender"/>
</root>
<!--ApplicationKitcategory-thepresentationUI-->
<loggername="WebForm1">
<levelvalue="INFO"/>
<appender-refref="FileAppender"/>
</logger>
</log4net>
</configuration>
注重Logger节点的NAME属性设的是WebForm1,这里指的是类名。要给每个必要增加LOG的类都增加一个如许的节点。想起了OSWORKFLOW事情流了,天真与便利有用常常不成兼得。这里的级别是INFO,也就是说,INFO以下的不会被纪录。
RunningtheSampleApplication
Step5:增加一个Log类
起首是增加援用
usinglog4net;usinglog4net.Config;//然后是实例化假如仔细研讨了设置文件,那末这个声明体例就很好了解了:privatestaticreadonlyILoglog=LogManager.GetLogger("WebForm1");

Step6:利用Log工具
到了如今,一切的设置事情都已完成了,接上去的事情就是测试一下,把他和使用层连起来。任意加一个按钮在呼应事务Button1_Clickeventhandler.中增加

log.Info("HelloWorld,Iamalogger");

Step7:RuntheApplication
如今能够运转了,应当是个如许子的:
如许每次点击按钮,在日至文件中就会呈现
2006-02-1310:12:30,671[1228]INFOWebForm1[]-HelloWorld,Iamalogger如许一笔记录。

总结:
复杂易用,过一阵再研讨SQL日记吧,DB才素霸道,呵呵。
更多信息拜见http://logging.apache.org/log4net/
学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 18:55:00 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
只想知道 该用户已被删除
板凳
发表于 2015-1-26 22:43:26 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
谁可相欹 该用户已被删除
地板
发表于 2015-2-4 21:21:57 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-10 13:34:07 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
再见西城 该用户已被删除
6#
发表于 2015-3-10 16:43:45 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
柔情似水 该用户已被删除
7#
发表于 2015-3-17 09:09:04 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
飘灵儿 该用户已被删除
8#
发表于 2015-3-24 04:57:53 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表