Log4gC語(yǔ)言日志工具包
Log4g是一個(gè)基于GObject 的日志工具。Log4g 的設(shè)計(jì)基于對(duì)流行的Log4j 1.2 日志包的移植。Log4j已經(jīng)被移植到了很多編程語(yǔ)言中,包括(不限于)C++、Perl和Python。Log4g將這個(gè)功能帶到C/GLib/GObject編程棧中。
Log4g 的核心組件是記錄器(loggers)、附加器(appenders)和布局(layouts)。
Log4g元素(也就是附加器、布局和過(guò)濾器)是通過(guò)GObject屬性來(lái)配置的。要想知道每個(gè)元素可用的屬性的清單,那就去看API 文檔。
記錄器
記錄器是Log4g 包中的中心對(duì)象
記錄器是以一種命名層次來(lái)組織的。Log4g 使用的命名習(xí)慣是,將記錄器“類”用一個(gè)點(diǎn)(.)隔開。例如,名為“org.gnome”的記錄器是名為“org.gnome.foo”的記錄器的一個(gè)祖宗。記錄器可以繼承它們的祖宗的附加器。這意味著記錄到名為“org.gnome.foo”的記錄器里去的事件也會(huì)被記錄到“org.gnome”的附加器里去。這個(gè)屬性被稱為記錄器的疊加性。默認(rèn)情況下所有的記錄器都具有疊加性。這個(gè)屬性可以通過(guò)一個(gè)配置文件(記錄器的additivity 屬性)或者使用log4g_logger_set_additivity()來(lái)禁用。
附加器
附加器決定了事件是如何記錄的
Log4g提供以下附加器
- 異步附加器
- 終端附加器
- 文件附加器
- 滾動(dòng)文件附加器
- Syslog附加器
布局
布局在一個(gè)事件被附加器記錄之前決定它的格式。
Log4g提供以下布局:
- HTML布局
- 模式布局
- 簡(jiǎn)單布局
- TTCC布局
- XML布局
過(guò)濾器
Log4g有內(nèi)置的過(guò)濾規(guī)則,然而還可以通過(guò)使用過(guò)濾器來(lái)進(jìn)行自定義的過(guò)濾。
Log4g提供以下過(guò)濾器:
- 全部否認(rèn)過(guò)濾器
- 匹配級(jí)別的過(guò)濾器
- 匹配級(jí)別范圍的過(guò)濾器
- 字符串匹配過(guò)濾器
配置
Log4g 的一個(gè)強(qiáng)大特性就是在不用重新編譯你的程序的情況下輕易使用不同方式(通過(guò)配置器)來(lái)配置這個(gè)包的能力。
Log4g提供以下配置器
- 基本配置器
- DOM配置器
