EmxLog

  日志服务LogServer是EmxCoreServer的一个线程,启动后会在后台运行,并收集来自各个进程的日志,控制打印等级,进行日志文件的存储,使用此服务的进程通过连接libEmxCore.so而得到一个全局的对象emxLog,此对象被封装为与日志服务程序通信的接口对象。

日志打印可使用如下预定义的简便接口

emxlogc() //致命日志
emxloge() //错误日志
emxlogw() //警告日志
emxlogi() //关键信息日志
emxlogd() //调式日志
emxlogt() //跟踪日志
emxlogn() //打印无额外格式化信息日志(仅包含时间)
emxlogx() //打印普通日志,同步本地阻塞打印,无打印等级控制

当服务启动后,客户端可以通过全局对象emxLog的相应接口控制日志的打印等级和同步打印或者异步打印

实例代码

#include "EmxCore.hpp"
using namespace Emx;
int main(){
emxlogc("this is a critical log\n");
emxloge("this is an error log\n");
emxlogw("this is a warning log\n");
emxlogi("this is an info log\n");
emxlogd("this is a debug log\n");
emxlogt("this is a trace log\n");
//如果此时想更改一下日志等级为跟踪,注意这个更改是全局的,整个系统的所有进程的打印等级都会改变
emxLog.SetLevel(Log::LevelE::TRACE);
//如果想更改为同步打印,这个也是全局的,所有进程都会在elogx函数内部调用printf,异步情况下printf是由LogServer执行的
emxLog.SetAsync(false);
return 0;
}
void SetAsync(bool ena)
设置日志打印异步模式
void SetLevel(LevelE level)
配置全局日志等级
Definition: EmxGpio.hpp:10