錯誤日誌的新增,每個日誌的大小為1M,迴圈30次。

2021-08-07 14:18:53 字數 2279 閱讀 9576

//定義

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應用中開啟此功能使我們的部分操作能夠被記錄到日誌檔案,那麼就需要進行一定的配置並...