使用mx.logging包进行高级trace

flex在mx.logging下包含了一个完整的 logging framework,利用这个logging framework 可以很方便的调试程序

这个 logging framework 主要由 logger 和 target 两部分组成。

logger 负责发送消息,而且支持若干等级的消息,比如你可以 logger.debug("这是条debug消息") , logger.error("这是error消息")...后边3个也类似.. fatal(), info(), warn()

target 负责用什么机制显示在哪里显示 logger发送的消息,这个framework的高超之处就是可以随意扩展被logger发送出来的消息的显示机制,比如在FMS开发中可以扩展出一个类把logger发送的消息发送到server端,或者比如在AIR开发中也可以扩展一个类把error消息写成一个txt文件,甚至可以再扩展一个类利用后台程序把错误消息存到
数据库里。但这都不属于本文范畴了,本文只说这个最简单的trace

mx.logging.targets 包中包含了一个TraceTarget类是用自带的trace机制来显示logger发送的消息,也就是说,logger发出的消息,我们既不存到txt文件,也不发送到数据库,我们只把它trace出来。

既然只是trace出来我们直接trace就好了何必用这个什么logging framework呢,这个问题很简单看标题“高级trace”
高级trace不是普通的trace,可以使trace出的东西支持时间,种类,级别...还可以过滤哪些我们不关注的类的trace信息不显示出来,哪些需要显示。

直接看一个包含这些特性的高级trace的例子

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="initializeHandler( )">
<mx:Script>
<![CDATA[
import mx.logging.Log;
import mx.logging.targets.TraceTarget;
import mx.logging.LogEventLevel
private var _target:TraceTarget;
private function initializeHandler( ):void
{
_target = new TraceTarget( ); //创建一个trace target
_target.includeDate = true; //显示日期
_target.includeTime = true; //显示trace的时间
_target.includeLevel = true; // 显示级别(error, debug, info .....)
_target.includeCategory = true; //显示种类
_target.filters = ["net.nshen.logging.*" ]; //只显示net.nshen.logging包里类trace出的信息

_target.level = LogEventLevel.INFO //只显示info()信息,其他什么debug()啊error()啊都不显示...

Log.addTarget(_target); //配置好target了把它填到Log里
}

//按钮一release就trace
private function sendToLog( ):void
{

Log.getLogger("net.nshen.logging.MainClass").info("看到info信息了吧~~haha只有我被显示出来了");
Log.getLogger("com.adobe.MainClass").info("由于不是net.nshen.logging包里的,所以我没有被显示出来...5555");
Log.getLogger("net.nshen.logging.MainClass").debug("由于不是info信息,所以我也没有被显示出来...555555555555");
// 两个参数,(种类 ,输出的信息)
//种类当然也可以不是用类的全名,但过滤时候就会出现比较麻烦的情况了,所以比较好的办法是将种类设置成类的全名例如上边的net.nshen.logging.MainClass
}
]]>
</mx:Script>
<mx:Button click="sendToLog( )" label="Log Message"/>
</mx:Application>


点了按钮后就会看到如下输出

10/1/2007 18:25:02.921 [INFO] net.nshen.logging.MainClass 看到info信息了吧~~haha只有我被显示出来了

 

原文地址:http://www.nshen.net/blog/article.asp?id=518

Practices.EnterpriseLibrary.Logging 是一个日志记录库,可以帮助开发人员记录应用程序中的异常、警告、信息等信息。要使用 Practices.EnterpriseLibrary.Logging,需要按照以下步骤操作: 1. 在 Visual Studio 中,创建一个新的控制台应用程序或 Web 应用程序。 2. 通过 NuGet 安装 Enterprise Library Logging 。 3. 在 App.config 或 Web.config 文件中,添加以下配置节: ``` <configSections> <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging" requirePermission="true" /> </configSections> <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General"> <listeners> <add name="Console Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.ConsoleTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.ConsoleTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging" traceOutputOptions="None" /> </listeners> <categorySources> <add switchValue="All" name="General"> <listeners> <add name="Console Trace Listener" /> </listeners> </add> </categorySources> </loggingConfiguration> ``` 4. 在代码中,使用以下代码记录日志: ``` Logger.Write("This is a message", "General"); ``` 以上是 Practices.EnterpriseLibrary.Logging 的基本使用方法,可以根据实际需求进行配置和使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值