C语言日志工具包 Log4g
本文导语: Log4g是一个基于GObject 的日志工具。Log4g 的设计基于对流行的Log4j 1.2 日志包的移植。Log4j已经被移植到了很多编程语言中,包括(不限于)C++、Perl和Python。Log4g将这个功能带到C/GLib/GObject编程栈中。 Log4g 的核心组件是记录器(log...
Log4g是一个基于GObject 的日志工具。Log4g 的设计基于对流行的Log4j 1.2 日志包的移植。Log4j已经被移植到了很多编程语言中,包括(不限于)C++、Perl和Python。Log4g将这个功能带到C/GLib/GObject编程栈中。
Log4g 的核心组件是记录器(loggers)、附加器(appenders)和布局(layouts)。
Log4g元素(也就是附加器、布局和过滤器)是通过GObject属性来配置的。要想知道每个元素可用的属性的清单,那就去看API 文档。
记录器记录器是Log4g 包中的中心对象
记录器是以一种命名层次来组织的。Log4g 使用的命名习惯是,将记录器“类”用一个点(.)隔开。例如,名为“org.gnome”的记录器是名为“org.gnome.foo”的记录器的一个祖宗。记录器可以继承它们的祖宗的附加器。这意味着记录到名为“org.gnome.foo”的记录器里去的事件也会被记录到“org.gnome”的附加器里去。这个属性被称为记录器的叠加性。默认情况下所有的记录器都具有叠加性。这个属性可以通过一个配置文件(记录器的additivity 属性)或者使用log4g_logger_set_additivity()来禁用。
附加器附加器决定了事件是如何记录的
Log4g提供以下附加器
- 异步附加器
- 终端附加器
- 文件附加器
- 滚动文件附加器
- Syslog附加器
布局在一个事件被附加器记录之前决定它的格式。
Log4g提供以下布局:
- HTML布局
- 模式布局
- 简单布局
- TTCC布局
- XML布局
Log4g有内置的过滤规则,然而还可以通过使用过滤器来进行自定义的过滤。
Log4g提供以下过滤器:
- 全部否认过滤器
- 匹配级别的过滤器
- 匹配级别范围的过滤器
- 字符串匹配过滤器
Log4g 的一个强大特性就是在不用重新编译你的程序的情况下轻易使用不同方式(通过配置器)来配置这个包的能力。
Log4g提供以下配置器
- 基本配置器
- DOM配置器