主流的伺服器都標配乙個日誌檔案,其檔案用於記錄伺服器執行的日常資訊,例如某個時間段的使用者請求連線數、訪問檔案統計數、成功或完成請求連線數、伺服器出錯資訊等等、該檔案主要幫助伺服器管理員更好地了解伺服器的運**況。
具體操作函式實現:
(1)開啟日誌檔案:
int log_file_open(const
char *pathname)
(2)往日誌檔案中寫入資訊:
int log_file_writen(char *logfile,char *filename, int *line, const
char *fmt, ...)
va_list ap;
time_t timep;
char *time_string = calloc(1,256), *ptr = calloc(1,1024);
char *buf1;
buf1 = calloc(1, 64);
int len = 0;
time(&timep);//取得當地時間
struct tm *timeinfo;
timeinfo = localtime(&timep);
strftime(time_string, 256, "%y年%m月%d日 %h時%m分%s秒", timeinfo); //建立字串時間戳
int_to_string(buf1, line);
for(va_start(ap, fmt); *fmt; fmt++)
va_end(ap);
}*(ptr + strlen(ptr)) = '\r';
*(ptr + strlen(ptr) + 1) = '\n';
*(ptr + strlen(ptr) + 2) = '\0';
writen(fd, ptr,strlen(ptr));
free(ptr);
free(time_string);
close(fd);
return
0;}
下面是(2)中呼叫到的操作函式實現:
//將整型轉換為字元
int int_to_string(char *buf, int val)
fin = buf;
while(temp > 9)
*(fin) = 48 + temp;
*(fin + 1) = '\0';
while(buf < fin)
return0;}
//往套接字描述符中寫n個位元組
size_t writen(int fd, const
void *vptr, size_t n)
nleft -= nwritten;
ptr += nwritten;
}return n;
}//在字串a的末尾新增字串b
return (a_len + b_len + 2);
}
效果例子:
19時35分19秒(test.c:69) head:accept has text/html
輕量web伺服器開發日記05 配置檔案的實現
配置檔案是伺服器必不可少的主要模組之一,它記錄著伺服器的初始化的相關引數,例如伺服器的埠和ip值,工作程序數目,工作根目錄等,而在目前三大伺服器 apache lighttpd nginx 的配置檔案中會有更多更複雜的引數,使得伺服器與該使用者的互動性大大的提高。在之前的日記中所介紹的記憶體池的塊大...
騰訊雲 輕量伺服器 體驗
例項規格 cpu 1核 記憶體 2gb 磁碟 系統盤 40gb 流量包 頻寬 3mbps,流量包 500gb 月 3年253塊,跟以前買的 雲伺服器cvm 標準型sa2,1核2g,一年350,相比便宜很多。記錄下對比體驗。開啟ssh客戶端,連線,跟 sa2 的北京節點一樣,基本秒連。進入 ssh,打...
WEB伺服器部署日記
近日朋友想開乙個論壇,他對這方面的東西不太懂 叫我幫忙弄乙個 跟他一商量,決定用他的新機器做伺服器 p4 2.4g ddr400 512m 的記憶體 其他配置忘了 使用在網上down的 dvbbs 7 sp2 sql版本 幾下把系統和sqlserver裝好,打好補丁,配好iis,裝上天網 就開始部署...