linux下封裝一些函式將需要的日誌資訊列印到控制台或寫入檔案,並讀取檔案。
(1)**writelog.cpp
/*日誌記錄*/
#include #include #include #include #include #include #include #include #include enum switch_mode
;int file_fd = -1;
int log_file(switch_mode mode = mode_day)
; char filetime[32] = ;
struct tm tm_time;
time_t t_log;
std::string log_time = "";
assert(getcwd(file_path, 512) != null); //當前目錄
if (file_path[strlen(file_path) - 1] != '/')
if(access(file_path, f_ok) != 0)
t_log = time(null);
localtime_r(&t_log, &tm_time);
strftime(filetime, sizeof(filetime), "%y%m%d%h%m%s", &tm_time); //日誌的時間
switch(mode)
strcat(file_path, "log_");
strcat(file_path, log_time.c_str());
strcat(file_path, ".log");
assert(file_fd != -1);
return 0;
}void write_cmd(const char *fmt,...)
int write_log(const char *msg, ...)
; //當前時間記錄
va_list vl_list;
va_start(vl_list, msg);
char content[1024] = ;
vsprintf(content, msg, vl_list); //格式化處理msg到字串
va_end(vl_list);
time_t time_write;
struct tm tm_log;
time_write = time(null); //日誌儲存時間
localtime_r(&time_write, &tm_log);
strftime(final, sizeof(final), "[%y-%m-%d %h:%m:%s] ", &tm_log);
strncat(final, content, strlen(content));
assert(msg != null && file_fd != -1);
assert( write(file_fd, final, strlen(final)) == strlen(final));
return 0;
}void close_file()
/******************日誌記錄測試******************/
int main()
(2)編譯執行
g++ -o writelog writelog.cpp
執行控制台顯示:
檔案log_20151105.log內容:
(2)編譯執行
gcc -o readdata readdata.c
./readdata log_20151105.log
(1)上述寫日誌的**對於較長的日誌會導致段錯誤,需要修改**。當然也可以參考qt或c++式的日誌,可以記錄無限長的日誌。
(2)讀取日誌中採用了兩種不同方式,建議採用第一種動態分配記憶體大小,第二種對於大檔案會導致段錯誤。
工程管理之二 日誌初始化工具
現在公司工作中使用的日誌工具是slf4j logback。初始化工具類實現如下 public class logutil file.getabsolutepath else url statusprinter.printincaseoferrorsorwarnings lc catch jorane...
Kafka日誌儲存解析(二)日誌索引
每個日誌分段檔案對應了兩個索引檔案,主要用來提高查詢訊息的效率。如上圖 kafka中的索引檔案屬於稀疏索引,不是所有的訊息都有對應的索引項。每當寫入一定量 由broker端引數log.index.interval.bytes指定,預設是4kb 的訊息時,偏移量索引檔案和時間戳索引檔案分別增加乙個偏移...
Raft 演算法詳解(二)日誌複製
在 raft 演算法中,副本資料是以日誌的形式存在的,領導者接收到來自客戶端寫請求後,處 理寫請求的過程就是乙個複製和提交日誌項的過程。那 raft 是如何複製日誌的呢?又如何實現日誌的一致的呢?這些內容是 raft 中非常核心 的內容,首先,咱 們先來理解日誌,這是你掌握如何複製日誌 實現日誌一致...