背景
想要记录程序输出到文件,方便出问题的时候复盘。
- 应该以配置文件为导向,具备时间、滚动、大小限制的功能。
- 能同时在console以及文件保存。
log4cpp
实操
#1、解压
#2、配置
./configure --prefix=/opt/log4cpp-1.1.3 --with-pthreads
#3、编译和安装
make&&make install
#arm版本的编译 --host=arm-fsl-linux-gnueabi (arm-fsl-linux-gnueabi 交叉编译工具链前缀)
./configure --prefix=/opt/log4cpp-1.1.3-arm --with-pthreads --host=arm-fsl-linux-gnueabi
安装后在安装目录生成
-
总结使用步骤(这里直奔主题,用文件方式管理日志属性):
创建日志的种类
,同时需要传入种类的默认优先级(DEBUG<INFO<WARN<ERROR)
。我们通过’种类’直接调用来打印,比如设置了一个叫“sub1”的种类,我们就可以用sub1.debug(“message”)来打印“message”这个信息。创建具体打印的输出器
,并设置输出器的属性:
1.输出方式。ConsoleAppender、FileAppender、RollingFileAppender
2.输出的最低优先级。(INFO还是ERROR等)
3.布局(输出的格式)类型。(特定的某一种布局类型(BasicLayout)。还是可以自定的布局类型(PatternLayout),然后自己来定制,比如按照“时间 [优先级] message”
3.将设置好属性的输出器,传入’日志种类‘中去。
下面是常见的定制化输出格式的设定参数:
#Q自定义日志消息的可能格式字符是什么?(傻瓜翻译)
PatternLayout 支持以下一组格式字符:
%%- 百分比符号
%c - 类别
%d - 日期\n 日期格式:日期格式字符后跟大括号之间包含的日期格式指定器。例如,%d_%H:%M:%S,%l] 或 %d_%d %m %Y %H:%M:%S,%l}。如果未提供日期格式指定器,则使用以下格式:"1 月 2 日星期三 02:03:55 1980"。日期格式指定器允许与 ANSI C 函数的稳稳时间相同的语法,并添加 1 个。添加的是毫秒的指定 %l,用零填充以产生 3 位数字。
%m - 消息
%n - 平台特定线路分隔符
%p - 优先级
%r - 创建此布局以来的毫秒数。
自 1970 年 1 月 1 日起的%R - 秒
%u - 进程开始以来的时钟刻度
%x - NDC
%t - 线程名称
默认情况下,模式布局的转换模式设置为"%m%n"