...
| 代码块 | ||
|---|---|---|
| ||
[2021-06-25 09:33:59:734] 1624584839 file_logger ERROR error msg [2021-06-25 09:33:59:734] 1624584839 file_logger ERROR err msg by stream |
对于log4cpp总结如下:
1. Category对应日志器类,使用 Category对应日志类别,使用 log4cpp::Category::getInstance() 获取指定名称的日志器实例,如果两个日志器名称相同,那么对应同一个日志器实例。
2. 使用Category的的setPriority()方法设置日志器的日志级别,日志级别使用log4cpp::Priority枚举值来表示。Priority枚举值来表示,一共有FATAL/ALERT/CRIT/ERROR/WARN/NOTICE/INFO/DEBUG/NOTSET几个等级。
3. 使用Appender来表示日志输出地,Appender可以细分为OstreamAppender和FileAppender等不同类型,一个Category可以有多个Appender,通过addAppender()方法为Category新增Appender。
4. 使用PatternLayout来表示日志的格式,通过字符串来表示,比如%d表示时间,后面可用使用PatternLayout来表示日志的格式,格式通过模板字符串来指定,比如%d表示时间,后面可用{}指定具体的时间格式,%R表示UTC秒数,%c表示日志器名称,%p表示日志级别,%m表示日志消息等指定具体的时间格式,%R表示UTC秒数,%c表示日志器名称,%p表示日志级别,%m表示日志消息等。
5. PatternLayout和Appender绑定,Priority和Category绑定,也就是Appender不具备日志级别判断功能。
除了在程序中指定日志配置,log4cpp也支持通过配置文件指定,这点参考官方示例即可。
下面开始sylar的日志模块设计,首先是日志级别,这个参考log4cpp即可,一共有以下几个级别:
...