Apache mina2 用户指南(十二)日志过滤器
来源:互联网 发布:元级潜艇模型 淘宝 编辑:程序博客网 时间:2024/05/29 17:02
背景
Apache MINA 体系允许基于 MINA 的应用的开发者使用他们自己的日志系统。
SLF4J
MINA 使用了简单日志门面 (Simple Logging Facade for Java,SLF4J)。你可以在这里找到 SLF4J 的信息。这个日志工具允许任意数量的日志系统的实现。你可以使用 log4j、java.util.logging 或者其他日志系统。这个的精彩之处在于如果你在以后的开发处理中将 java.util.logging 改为 log4j,你完全不需要修改你的源代码。
选择合适的 jar 包
日志框架 需要的 jar 包 Log4J 1.2.xslf4j-api.jar, slf4j-log4j12.jar**Log4J 1.3.xslf4j-api.jar, slf4j-log4j13.jarjava.util.loggingslf4j-api.jar, slf4j-jdk14.jar**Commons Loggingslf4j-api.jar, slf4j-jcl.jar
有几件事要记住:
覆盖 Jakarta Commons Logging
SLF4J 也提供了一种办法在不修改源代码的情况下将使用 Jakarta Commons Logging 的应用转换为使用 SLF4J。只需要将 commons-loggong jar 文件从 class path 中移除,然后添加 jcl104-over-slf4j.jar 到 class path。
log4j 例子
本示例我们将使用 log4j 日志系统。创建一个项目,然后讲以下代码片段放进一个叫做 log4j.properties 的文件:
这个文件将被放在我们项目的 src 目录。如果你使用的是 IDE,在你测试你的代码的时候你需要将此配置文件放在 JVM 的 classpath 下。
尽管这里演示了如何建立一个使用日志的 IoAcceptor,记住 SLF4J API 可能会在你的程序中的任何地方被使用,以生成适用于你的需求的恰当的日志信息。
接下来我们建立一个简单的示例服务器以生成一些日志。这里我们采用的是 EchoServer 示例项目并添加日志到类中:
正如你所看到的,我们移除了 addLogger 方法并在 EchoServer 示例中添加了两行。通过 LoggingFilter 的引用,你可以为你的处理器中 IoAcceptor 关联到的每个事件类型设置日志级别。为了定义触发日志的 IoHandler 事件并指定所执行的日志级别,LoggingFilter 定义了一个叫做 setLogLevel(IoEventType, LogLevel) 方法。以下是为这一方法的选项:
IO 事件类型 描述 SESSION_CREATED在新会话被建立时调用SESSION_OPENED在新会话被打开时调用SESSION_CLOSED在会话被关闭时调用MESSAGE_RECEIVED接收到数据时调用MESSAGE_SENT消息被发送时调用SESSION_IDLE到达会话空闲时间时调用EXCEPTION_CAUGHT有异常抛出时调用
以下是为日志级别的描述:
日志级别 描述 NONE这个将导致无视配置的存在而没有任何日志事件被创建TRACE在日志系统中创建一个 TRACE 事件DEBUG产生日志系统中的 debug 日志INFO产生日志系统中的信息消息日志WARN产生日志系统中的警告消息日志ERROR产生日志系统中的错误消息日志
使用这些信息,你足以建立一个基本的日志系统了,并可以在此示例基础上进行扩展以为你自己的系统产生日志信息。
原文链接:http://mina.apache.org/mina-project/userguide/ch12-logging-filter/ch12-logging-filter.html。
Apache MINA 体系允许基于 MINA 的应用的开发者使用他们自己的日志系统。
SLF4J
MINA 使用了简单日志门面 (Simple Logging Facade for Java,SLF4J)。你可以在这里找到 SLF4J 的信息。这个日志工具允许任意数量的日志系统的实现。你可以使用 log4j、java.util.logging 或者其他日志系统。这个的精彩之处在于如果你在以后的开发处理中将 java.util.logging 改为 log4j,你完全不需要修改你的源代码。
选择合适的 jar 包
SLF4J 使用静态绑定。这意味着每个支持的日志框架都有自己的一个 jar 文件。你可以通过选择调用了你静态选择的日志框架的 jar 文件使用你喜爱的日志框架。以下是使用特定日志框架所需 jar 包的列表:
有几件事要记住:
- slf4j-api.jar 是任何实现 jar 包里都必须的
- 重要 你不可以把多个实现 jar 包放在 class path (比如 slf4j-log4j12.jar 和 slf4j-jdk14.jar 一起);这样可能会导致你的应用出现意想不到的行为。
- slf4j-api.jar 和 slf4j-.jar 的版本应该一致。
覆盖 Jakarta Commons Logging
SLF4J 也提供了一种办法在不修改源代码的情况下将使用 Jakarta Commons Logging 的应用转换为使用 SLF4J。只需要将 commons-loggong jar 文件从 class path 中移除,然后添加 jcl104-over-slf4j.jar 到 class path。
log4j 例子
本示例我们将使用 log4j 日志系统。创建一个项目,然后讲以下代码片段放进一个叫做 log4j.properties 的文件:
这个文件将被放在我们项目的 src 目录。如果你使用的是 IDE,在你测试你的代码的时候你需要将此配置文件放在 JVM 的 classpath 下。
尽管这里演示了如何建立一个使用日志的 IoAcceptor,记住 SLF4J API 可能会在你的程序中的任何地方被使用,以生成适用于你的需求的恰当的日志信息。
接下来我们建立一个简单的示例服务器以生成一些日志。这里我们采用的是 EchoServer 示例项目并添加日志到类中:
正如你所看到的,我们移除了 addLogger 方法并在 EchoServer 示例中添加了两行。通过 LoggingFilter 的引用,你可以为你的处理器中 IoAcceptor 关联到的每个事件类型设置日志级别。为了定义触发日志的 IoHandler 事件并指定所执行的日志级别,LoggingFilter 定义了一个叫做 setLogLevel(IoEventType, LogLevel) 方法。以下是为这一方法的选项:
以下是为日志级别的描述:
使用这些信息,你足以建立一个基本的日志系统了,并可以在此示例基础上进行扩展以为你自己的系统产生日志信息。
原文链接:http://mina.apache.org/mina-project/userguide/ch12-logging-filter/ch12-logging-filter.html。
0 0
- Apache mina2 用户指南(十二)日志过滤器
- Apache mina2 用户指南(五)过滤器
- Apache mina2 用户指南(十)执行者过滤器
- Apache mina2 用户指南(十一)ssl过滤器
- Apache mina2 用户指南(九)编解码过滤器
- Apache mina2用户指南(一)
- Apache mina2 用户指南(二)
- Apache mina2 用户指南(三)IO服务
- Apache mina2 用户指南(四)会话
- Apache mina2 用户指南(六)传输
- Apache mina2 用户指南(七)事件处理器
- Apache mina2 用户指南(八)字节缓存
- Apache mina2 用户指南(十六)JMX集成
- Apache mina2 用户指南(十七)spring集成
- apache mina2 用户指南(十五)代理
- Apache mina2 用户指南(十四)状态机
- Apache mina2 用户指南(十三)调试
- 《Apache MINA 2.0 用户指南》第十二章:日志过滤器
- BT3-BT5专题
- 关于ES、PES、PS以及TS码流
- 神经网络学习笔记(六) 广义回归神经网络
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- C语言基础教学——if选择结构(第三课)
- Apache mina2 用户指南(十二)日志过滤器
- 正则表达式进阶
- UVA 116 Unidirectional TSP单向TSP(DP)
- MBA中Safari访问Domino邮箱服务器的配置
- 为什么开源可以提高程序员的编程技能?
- ByteCountFormatter 简介
- IO流分析
- Apache mina2 用户指南(十一)ssl过滤器
- highchart