承接第55篇文章,本文讲述如何使用syslog来查看open62541生成的日志,配合使用VSCode的logviewer扩展,可以很方便的查看log。
注意,syslog只能在linux下使用。
一 开启syslog
在open62541的CMakeLists.txt里搜索syslog, 可以看到如果运行环境是Linux或者Unix,会自动添加syslog相关的文件到编译列表里。
还要保证linux系统里安装了syslog,可以去/var/log/下查看是否有syslog
二 安装Log Viewer
请参考这篇文章
三 使用syslog
main.c内容如下,第17行把config->logger设置成syslog,UA_Log_Syslog()是在log_syslog.h里定义的
#include <signal.h>
#include "open62541.h"
UA_Boolean running = true;
void signalHandler(int sig) {
running = false;
}
int main(void)
{
signal(SIGINT, signalHandler);
UA_Server *server = UA_Server_new();
UA_ServerConfig *config = UA_Server_getConfig(server);
config->logger = UA_Log_Syslog();
UA_ServerConfig_setDefault(config);
UA_StatusCode status = UA_Server_run(server, &running);
UA_Server_delete(server);
return status;
}
然后重新Build,成功后先打开Log Viewer,(因为本人事先清理了一下,所以显示为空) 此时我们运行一下main,如下, 可以看到打印的log都通过syslog进行显示了。
|