最近在分析ceph某個模組的時候,發現該模組沒有日誌輸出模組(也就是無法直接使用dout列印日誌),基於此整理了下怎麼樣可以正常使用日誌列印。
話不多說,直接貼**好了。
如下,在subsys.h中新增想新增的子模組
root@fe4fcb2c09b7:/tmp/ceph-luminous# git diff src/common/subsys.h
diff --git a/src/common/subsys.h b/src/common/subsys.h
index 6e6c26fa78..636451e180 100644
--- a/src/common/subsys.h
+++ b/src/common/subsys.h
@@ -77,3 +77,4 @@ subsys(mgr, 1, 5)
subsys(mgrc, 1, 5)
subsys(dpdk, 1, 5)
subsys(eventtrace, 1, 5)
+subsys(aio, 1, 5) // 1和5代表預設的日誌列印級別
root@fe4fcb2c09b7:/tmp/ceph-luminous#
root@fe4fcb2c09b7:/tmp/ceph-luminous# git diff src/os/bluestore/aio.cc
diff --git a/src/os/bluestore/aio.cc b/src/os/bluestore/aio.cc
index 256f3db97f..21214f0e56 100644
--- a/src/os/bluestore/aio.cc
+++ b/src/os/bluestore/aio.cc
@@ -2,13 +2,30 @@
// vim: ts=8 sw=2 smarttab
++#include "common/debug.h"
+#include "common/errno.h"
+#include "include/assert.h"
+#include "common/ceph_context.h"
+ // 宣告aio子模組
+#define dout_context g_ceph_context
+#define dout_subsys ceph_subsys_aio
+#undef dout_prefix
+#define dout_prefix *_dout << "aio "
int aio_queue_t::submit_batch(aio_iter begin, aio_iter end,
uint16_t aios_size, void *priv,
int *retries)
{+ dout(3) << __func__ << "submit_batch" <<< dendl; // 可以使用dout列印了
日誌模組的新增
日誌的等級 import logging 日誌的五個等級,等級依次遞增 預設是warning等級 logging.debug logging.info logging.warning logging.error logging.critical 設定日誌等級 logging.basicconfig ...
為opentack 日誌新增行號
檢視openstack的nova api模組的日誌 tail f var log nova nova api.log 2016 12 13 17 50 46.683 20713 info nova.openstack common service started child 20742 2016 1...
為Django應用新增logging日誌功能
django uses python s builtin logging module to perform system logging.django使用python的內建日誌模組來記錄系統日誌,但是要想在django應用中開啟此功能使我們的部分操作能夠被記錄到日誌檔案,那麼就需要進行一定的配置並...