Flex Logging API(日志管理)

用过java的日志框架log4j之后,你就会被它方便而又强大的功能所吸引。我们不仅可以控制日志输出的目的地,还可以控制日至输出级别,便于调试和发布。
其实在Flex中也提供了这样的一个框架,Logging API就是最基本的日志控制框架,只不过大部分的人都在用最简单的trace()函数罢了。
Logging API不仅提供了最基本的trace功能,还提供了log target,也就是输出的方式。还提供了destination目的地的配置功能。通过我们对log的级别控制我们可以输出一些普通信息而过滤掉 debug的信息。除此之外还可以进行自定义log target,对框架进行扩展。
重要概念和类介绍:
Logger: 提供了接口发送log到一个特定的target,它实现了ILogger接口。
Log target: 定义了日志将会被写道哪里。Flex提供了两类target,TraceTarget和MiniDebugTarget。TraceTarget就是将 log输出到trace()函数输出的文件中,也就是flashlog.txt文件中。当然你也可以自定义一个log target。
Logging Level:定义了当前系统可输出的日志级别。
如下表所示,按照高到低排列。如果现在的level是ALL,那么系统中所有的日志都会被输出。如果是INFO,那么高于INFO的DEBUG信息就不会被输出。这个很容易理解。

Logging level

constant (int)

Description
ALL (0)Designates that messages of all logging levels should be logged.
DEBUG (2)Logs internal Flex activities. This is most useful when debugging anapplication.Select the DEBUG logging level to include DEBUG, INFO, WARN,ERROR, and FATAL messages in your log files.
INFO (4)Logs general information.Select the INFO logging level to include INFO, WARN, ERROR, and FATAL messages in your log files.
WARN (6)Logs a message when the application encounters a problem. These problems do not cause the application to stop running, but could lead to further errors.Select the WARN logging level to include WARN, ERROR, and FATAL messages in your log files.
ERROR(8)Logs a message when a critical service is not available or a situation has occurred that restricts the use of the application. Select the ERROR logging level to include ERROR and FATAL messages in your log files.
FATAL (1000)Logs a message when an event occurs that results in the failure of the application. Select the FATAL logging level to include only FATAL messages in your log files.

 

 

 

 

 

 

 

 

 

 

 

log target 过滤filters
logTarget.filters=["mx.rpc.*","mx.messaging.*"];
这个例子中就是指定了我们要输出日志的类和包。只有在mx.rpc和mx.messaging包下的类才能输出log,忽略其他的。也可以是mxml形式:

<mx:TraceTarget id=”logTarget” includeDate=”true” includeTime=”true” 
includeCategory=”true” includeLevel=”true”> 
<mx:filters> 
<mx:Array> 
<mx:String>mx.rpc.*</mx:String> 
<mx:String>mx.messaging.*</mx:String> 
</mx:Array> 
</mx:filters> 
<!– 0 is represents the LogEventLevel.ALL constant. –> 
<mx:level>0</mx:level> 
</mx:TraceTarget> 

 
参数介绍
includeDate=”true”,输出的log带日期
includeTime=”true”, 输出的log带时间
includeCategory=”true”,输出的log带分类信息,也就是哪个类或者控件输出的log
includeLevel=”true”,输出的log是否带level信息,如[INFO],[DEBUG]等。
来个实用的小例子

<?xml version=”1.0″ encoding=”utf-8″?> 
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” initialize=”initLog()”> 
<mx:Script> 
<![CDATA[ 
import mx.logging.*; 
import mx.logging.targets.*; 
private var myLogger : ILogger; 
public function printLog(level:Number):void 
{ 
if(level ==2) 
myLogger.debug("This is debug click"); 
if(level == 4) 
myLogger.info("This is info click"); 
if(level == 6) 
myLogger.warn("This is warn click"); 
if(level == 
myLogger.error("This is error click"); 
if(level ==1000) 
myLogger.fatal("This is fatal click"); 
} 
private function initLog():void{ 
/* 
// Create a target. 
var logTarget:TraceTarget = new TraceTarget(); 
// Log only messages for the classes in the mx.rpc.* and 
// mx.messaging packages. 
logTarget.filters=["*"]; 
// Log all log levels. 
logTarget.level = LogEventLevel.ALL; 
// Add date, time, category, and log level to the output. 
logTarget.includeDate = true; 
logTarget.includeTime = true; 
logTarget.includeCategory = true; 
logTarget.includeLevel = true; 
// Begin logging. 
Log.addTarget(logTarget); 
*/ 
myLogger = Log.getLogger(”myCustomClass”); 
} 
]]> 
</mx:Script> 
<mx:TraceTarget level=”4″ includeDate=”true” includeTime=”true” 
includeCategory=”true” includeLevel=”true”> 
<mx:filters> 
<mx:Array> 
<mx:String>*</mx:String> 
</mx:Array> 
</mx:filters> 
</mx:TraceTarget> 
<mx:VBox width=”100%” height=”100%” horizontalAlign=”center” verticalAlign=”middle”> 
<mx:Button label=”DEBUG(2)” click=”printLog(2)”/> 
<mx:Button label=”INFO(4)” click=”printLog(4)”/> 
<mx:Button label=”WARN(6)” click=”printLog(6)”/> 
<mx:Button label=”ERROR(8)” click=”printLog(8)”/> 
<mx:Button label=”FATAL(1000)” click=”printLog(1000)”/> 
</mx:VBox> 
</mx:Application> 

 本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1841

 

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
# 【实战教程】Pytest从入门到进阶:基于FastAPI的测试开发全指南 13章体系化教程,从Pytest基础到企业级实战,结合FastAPI落地测试方案,附完整可运行代码与最佳实践! ## 核心内容 覆盖环境搭建、用例编写、Fixture系统、参数化测试、覆盖率分析、插件开发、CI/CD集成等13大核心模块,分入门→进阶→高级三阶段学习路径。每章配套FastAPI实战项目(用户认证、电商API、完整电商系统等),测试用例贴合实际业务,支持本地直接运行。聚焦高频难点:Fixture作用域管理、参数化数据源设计、测试并行执行、异常处理、自定义插件开发、覆盖率优化。落地工程化实践:测试目录规范、用例隔离、日志配置、测试报告可视化、CI/CD自动化集成。 ## 技术栈 FastAPI + Pytest + Pydantic + OAuth2/JWT + RESTful API + 测试覆盖率工具 + CI/CD ## 适用人群 Python开发者、测试工程师、后端开发者、DevOps工程师(零基础可入门,有经验可进阶) ## 学习收获 掌握Pytest全流程用法,能独立设计可维护测试体系,实现高覆盖率测试与报告可视化,开发自定义插件,落地TDD与持续集成流程。 ## 快速上手 1. 进入章节目录安装依赖:`pip install fastapi uvicorn pytest fastapi.testclient` 2. 运行应用:`uvicorn app:app --reload`,访问`http://localhost:8000/docs` 3. 执行测试:`python -m pytest test_app.py -v` 配套完整代码、测试用例与配置文件,助力快速落地实际项目!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值