From 0117d5f8ff386075b0c4cbec0cbe460fe3cfa680 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期四, 06 五月 2021 18:57:25 +0800
Subject: [PATCH] add logging, use boost.log.

---
 src/bh_api.cpp |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/bh_api.cpp b/src/bh_api.cpp
index c29afd9..c9ceb20 100644
--- a/src/bh_api.cpp
+++ b/src/bh_api.cpp
@@ -1,6 +1,7 @@
 #include "bh_api.h"
 #include "defs.h"
 #include "topic_node.h"
+#include <cstdio>
 #include <memory>
 
 using namespace bhome_shm;
@@ -8,9 +9,36 @@
 
 namespace
 {
+std::string GetProcExe()
+{
+	auto f = fopen("/proc/self/stat", "rb");
+	if (f) {
+		DEFER1(fclose(f));
+		char buf[100] = {0};
+		int n = fread(buf, 1, sizeof(buf), f);
+		if (n > 0) {
+			std::string s(buf, n);
+			auto start = s.find('(');
+			if (start != std::string::npos) {
+				++start;
+				auto end = s.find(')', start);
+				return s.substr(start, end - start);
+			}
+		}
+	}
+	return std::to_string(getpid());
+}
 std::unique_ptr<TopicNode> &ProcNodePtr()
 {
 	static bool init = GlobalInit(BHomeShm());
+	auto InitLog = []() {
+		auto id = GetProcExe();
+		char path[200] = {0};
+		sprintf(path, "/tmp/bhshmq_node_%s.log", id.c_str());
+		ns_log::AddLog(path);
+		return true;
+	};
+	static bool init_log = InitLog();
 	static std::unique_ptr<TopicNode> ptr(new TopicNode(BHomeShm()));
 	return ptr;
 }

--
Gitblit v1.8.0