15 日志配置
因为日志配置经常变化(取决于部署场景和取决于开发者的个人设置),经常是保存在外部XML配置文件中。因此Parsley为日志配置提供了一个可选的扩展和一组XML标签。
对于Flex应用程序可以使用XML标签来构建标准的Flex LogTargets。对于Flash应用程序Parsley包含一组独立的标签用Spicelib Logging Framework创建日志代替。在最后一节中,我们将演示如何配置Parsley框架类内部的日志输出。
这个功能是不属于Parsley Core。扩展可以在Parsley下载页面下载。只需添加下载的SWCs到你的classpath中。
15.1 Flex 日志配
如果你想使用Flex Logging API你有两个选择:你可以用内置MXML标签在MXML中配置 LogTargets——在这种情况下不需要集成Parsley。有关使用Flex Logging API 查看Flex LiveDocs。
如果你喜欢使用外部XML文件配置日志你可以使用一个Parsley的扩展XML标签创建LogTargets:
<objects
xmlns="http://www.spicefactory.org/parsley"
xmlns:log="http://www.spicefactory.org/parsley/flex/logging"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spicefactory.org/parsley
http://www.spicefactory.org/parsley/schema/2.3/parsley-core.xsd
http://www.spicefactory.org/parsley/flex/logging
http://www.spicefactory.org/parsley/schema/2.3/parsley-logging-flex.xsd"
>
<log:target level="error">
<log:filter>org.spicefactory.*</log:filter>
</log:target>
<log:target level="debug">
<log:filter>com.bookstore.*</log:filter>
<log:filter>com.mycompany.util.*</log:filter>
</log:target>
<!-- other object definitions -->
</objects>
上面的示例配置,你将只能看到Spicefactory框架类的内部error 日志,还有你自己的应用程序类的debug日志。
标签创建默认的目标类是一个TraceTarget。你可以显式地声明其他目标类型:
<log:target level="debug" type="com.bookstore.util.CustomLogTarget">
<log:filter>com.bookstore.*</log:filter>
</log:target>
由于这是一个扩展,必须在使用XmlContextBuilder之前显式地进行初始化:
FlexLoggingXmlSupport.initialize();
15.2 Flash 日志配置
....
15.3 Parsley框架日志配置
最后你可能想看到Parsleys(和Spicelibs)日志的输出帮助调试。
你可以通过LogContext获得logger 的一个代理:
LogContext.getLogger(MyClass);
你甚至可以在你自己的代码中使用那些代理logger,对于构建应用程序这不是非常有用,因为它们不是Flex就是Flash应用程序,所以你可以简单地决定使用哪些日志API。
最后,实际代理必须被初始化,这取决于环境。
为 Flex Logging API 设置代理
在大多数情况下,代理将自动初始化。如果你使用FlexContextBuilder类的静态入口方法或者15.1 Flex 日志配置展示的XML配置扩展标签。
如果你不是使用的这两种方式你必须手动初始化代理:
LogContext.factory = new FlexLogFactory();