修正了common.c中对日志消息队列的操作,其中包括:交换log_prepare与log_writing>队列指针的bug;以及在写入log_prepare队列时未检查已写入消息是否大于队列长度的b
ug。修正了log_path(即日志文件名)不会随时间改变的bug。
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
--V1.14 --
|
||||
2015-12-29
|
||||
修正了common.c中对日志消息队列的操作,其中包括:交换log_prepare与log_writing>队列指针的bug;以及在写入log_prepare队列时未检查已写入消息是否大于队列长度的b
|
||||
ug。修正了log_path(即日志文件名)不会随时间改变的bug。
|
||||
--V1.13 --
|
||||
2015-12-23
|
||||
修正在记录日志中检查目录时(在函数create_dir中),由于采用线程进行日志记录,多次调用get_nic_info可能会导致的将日志文件路径名变错的问题。在get_nic_info中判断log_path是否被初始化过,如过未初始化,则到共享内存中读取。否则,为初始化过,直接使用该值,并在create_dir中使用局部变量保存该值,在create_dir中使用操作该局部变量,而不去改变该全局变量的值。
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
--V1.14 --
|
||||
2015-12-29
|
||||
修正了common.c中对日志消息队列的操作,其中包括:交换log_prepare与log_writing>队列指针的bug;以及在写入log_prepare队列时未检查已写入消息是否大于队列长度的b
|
||||
ug。修正了log_path(即日志文件名)不会随时间改变的bug。
|
||||
--V1.13 --
|
||||
2015-12-23
|
||||
修正在记录日志中检查目录时(在函数create_dir中),由于采用线程进行日志记录,多次调用get_nic_info可能会导致的将日志文件路径名变错的问题。在get_nic_info中判断log_path是否被初始化过,如过未初始化,则到共享内存中读取。否则,为初始化过,直接使用该值,并在create_dir中使用局部变量保存该值,在create_dir中使用操作该局部变量,而不去改变该全局变量的值。
|
||||
|
||||
@@ -46,25 +46,34 @@ static void *record_log_thread( void *arg )
|
||||
FILE *log_fp = NULL;
|
||||
char **tmp = NULL;
|
||||
int i = 0;
|
||||
LOGPATH_LOCK;
|
||||
strcpy(tmp_path,log_path);
|
||||
LOGPATH_UNLOCK;
|
||||
|
||||
create_dir( log_path );
|
||||
// create_dir( log_path );
|
||||
create_dir( tmp_path );
|
||||
|
||||
log_thread_exit = 0;
|
||||
|
||||
// log_fp = fopen(log_path, "a");
|
||||
|
||||
|
||||
while( !log_thread_exit ) {
|
||||
LOGPATH_LOCK;
|
||||
strcpy(tmp_path,log_path);
|
||||
LOGPATH_UNLOCK;
|
||||
if( !log_fp ) {
|
||||
LOGPATH_LOCK;
|
||||
log_fp = fopen(log_path, "a");
|
||||
LOGPATH_UNLOCK;
|
||||
// LOGPATH_LOCK;
|
||||
// log_fp = fopen(log_path, "a");
|
||||
log_fp = fopen(tmp_path, "a");
|
||||
// LOGPATH_UNLOCK;
|
||||
}
|
||||
|
||||
//prepare log strings
|
||||
LOG_LOCK;
|
||||
tmp = log_writing;
|
||||
log_writing = log_prepare;
|
||||
log_prepare = log_writing;
|
||||
// log_prepare = log_writing;
|
||||
log_prepare = tmp;
|
||||
log_idx=0;
|
||||
LOG_UNLOCK;
|
||||
|
||||
@@ -77,7 +86,8 @@ static void *record_log_thread( void *arg )
|
||||
}
|
||||
|
||||
if( log_fp ) {
|
||||
fwrite( log_str, 1, strlen(log_str), log_fp ); //write to file
|
||||
// fwrite( log_str, 1, strlen(log_str), log_fp ); //write to file
|
||||
fwrite( log_str, strlen(log_str), 1, log_fp );
|
||||
}
|
||||
|
||||
free( log_str ); //free
|
||||
@@ -151,13 +161,18 @@ void record_log(char *str)
|
||||
pthread_create( &pid, NULL, record_log_thread, (void *)NULL );
|
||||
}
|
||||
|
||||
keepstr = strdup( log_str );
|
||||
|
||||
LOG_LOCK;
|
||||
if( log_prepare ) {
|
||||
log_prepare[log_idx] = keepstr;
|
||||
log_idx++;
|
||||
}
|
||||
if(log_idx < MAX_LOG_COUNT){
|
||||
keepstr = strdup( log_str );
|
||||
if(!keepstr){
|
||||
LOG_UNLOCK;
|
||||
return;
|
||||
}
|
||||
//LOG_LOCK;
|
||||
if( log_prepare ) {
|
||||
log_prepare[log_idx] = keepstr;
|
||||
log_idx++;
|
||||
}
|
||||
LOG_UNLOCK;
|
||||
}
|
||||
|
||||
|
||||
@@ -986,11 +986,13 @@ static void *create_logfile(void *ptr)
|
||||
close(fd);
|
||||
}
|
||||
umask(mask_tmp);
|
||||
strcpy(del_file[head++], log_path);
|
||||
LOGPATH_UNLOCK;
|
||||
|
||||
old_mon = tmptr.tm_mon+1;
|
||||
old_day = tmptr.tm_mday;
|
||||
strcpy(del_file[head++], log_path);
|
||||
// strcpy(del_file[head++], log_path);
|
||||
|
||||
if(head == DAYS){
|
||||
head = 0;
|
||||
del_flag = 1;
|
||||
|
||||
@@ -328,14 +328,17 @@ int get_nic_info(char *nic_name, NETCARD_INFO *net_info)
|
||||
closedir(dir);
|
||||
#endif
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
strftime(buf, sizeof(buf), "%Y%m%d_", &tmptr);
|
||||
strcat(buf, "sys_nicmonitor.log");
|
||||
|
||||
LOGPATH_LOCK;
|
||||
s = strrchr(log_path, '/');
|
||||
s++;
|
||||
*s = '\0';
|
||||
memset(buf, 0, sizeof(buf));
|
||||
strftime(buf, sizeof(buf), "%Y%m%d_", &tmptr);
|
||||
strcat(buf, "sys_nicmonitor");
|
||||
strcat(buf, ".log");
|
||||
strcat(log_path, buf);
|
||||
LOGPATH_UNLOCK;
|
||||
|
||||
if((ret = init_nic_info()) == -1){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// version=1.13
|
||||
// version=1.14
|
||||
#ifndef MNIC_VERSION
|
||||
#define MNIC_VERSION "1.13"
|
||||
#define MNIC_VERSION "1.14"
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user