//定義
const dword g_errlog_file_size = 1024*1024;//1m
const dword g_errlog_file_num = 30;//file num
dword current_file_num = 1;
dword g_current_log_size = 0;
file *g_errlog_file = null;
void errlog_open(dword num,bool bstartopen = false);
void errlog_write(char *str, int ilen);
void errlog_close();
//index logfile 日誌索引檔案,當有系統退出時,下一次啟動的起點。。
file *g_err_index_log_file = null;
void index_log_open(int type);
void index_log_write(dword num);
dword index_log_read();
void index_log_close();
void errlog_open(dword errlog_num, bool bstartopen)
;if (!chpath[0])
if (g_errlog_file)
if (bstartopen)}}
else
//覆蓋寫索引到index_log
dcf_err_index_log_open(2);
dcf_err_index_log_write(errlog_num);
dcf_err_index_log_close();
}void errlog_write(char *str, int ilen) //外部呼叫介面
g_current_log_size += ilen;
if (g_current_log_size > g_errlog_file_size)
//關掉之前的檔案
errlog_close();
errlog_open(current_file_num);
g_current_log_size = 0;
}fwrite(str, 1, ilen, g_errlog_file);
fflush(g_errlog_file);
}void errlog_close()
fclose(g_errlog_file);
g_errlog_file = null;
}//1 readonly ; 2 write only
void dcf_err_index_log_open(int type)
;dcf_dir_get_filepath(dir_log, chpath, "err_log_index.txt");
if (g_err_index_log_file)
if (type == 1)
else if (type == 2)
}void index_log_write(dword num)
char str_index[4];
int ilen = sprintf_s(str_index, sizeof(str_index), "%d", num);
fwrite(str_index, 1, ilen, g_err_index_log_file);
fflush(g_err_index_log_file);
}dword index_log_read()
;size_t a = fread(str_index, sizeof(str_index), 1, g_err_index_log_file);
int idx = atoi(str_index);
if ((idx < 1) || (idx > g_errlog_file_num))
return idx;
}void index_log_close()
fclose(g_err_index_log_file);
g_err_index_log_file = null;
}//初始化介面
err_index_log_open(1);
current_file_num = dcf_err_index_log_read();
errlog_open(current_file_num,true);
err_index_log_open(2);
已經試用,東西比較簡單,沒有做成大型的日誌。。
新增日誌 為ceph無日誌模組新增日誌
最近在分析ceph某個模組的時候,發現該模組沒有日誌輸出模組 也就是無法直接使用dout列印日誌 基於此整理了下怎麼樣可以正常使用日誌列印。話不多說,直接貼 好了。如下,在subsys.h中新增想新增的子模組 root fe4fcb2c09b7 tmp ceph luminous git diff ...
為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應用中開啟此功能使我們的部分操作能夠被記錄到日誌檔案,那麼就需要進行一定的配置並...