Skye
(Skye)
1
问题描述
如题,怎么通过修改代码调整app.log、framework.log等日志的打印等级,让它不要打印notice、warn,只打印error及以上等级信息。
环境信息
期望结果
app.log等日志只打印error及以上的信息
尝试过的解决方案
- 修改 OpenUBMC/libmcpp/src/log/log_manager.cpp 文件中63行左右 default_logger.set_level(mc::log::level::notice); 将notice改为error无效。
- 修改 OpenUBMC/libmcpp/stub/logging_internal.h 文件中28行 guint level : 4; ,将4改为6无效
- 尝试在OpenUBMC/frudata/src里给调用过log:notice等函数的lua文件,全部在引用下方,加上全局日志等级设置log:setLevel(log.ERROR),无效。
你直接使用cat /var/log/app.log| grep ERROR或者cat /var/log/app.log| grep -v 'NOTICE|WARN'筛选一下不行吗
Skye
(Skye)
4
想减少写入的信息量,嵌入式空间小擦写次数有限,想尽量减少不必要的日志写入。
1、busctl --user --no-pager list | grep ^bmc.kepler找出所有service
2、busctl --user --no-pager set-property bmc.kepler.XXX /bmc/kepler/hwproxy/MicroComponent bmc.kepler.MicroComponent.Debug SetDlogLevel a{ss}sy 0 error 24这里XXX替换为实际的service名称,可以用脚本遍历设置
这种方式只能设置error级别24小时,不清楚openubmc有没有可以对所有组件设置日志级别的接口
无法直接调整整个日志文件的级别,目前只能调整组件的,类似如下操作
~ ~ $ mdbctl
**********************************************************************
Debug Shell
Copyright(C) 2023
**********************************************************************
% attach bmc_soc
Success
% dloglevel error 24