Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
clibcni
提交
f5437845
C
clibcni
项目概览
openeuler
/
clibcni
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clibcni
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5437845
编写于
1月 16, 2020
作者:
O
openeuler-ci-bot
提交者:
Gitee
1月 16, 2020
浏览文件
操作
浏览文件
下载
差异文件
!3 refactor log
Merge pull request !3 from haozi007/master
上级
efa9896c
eb1dced5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
34 addition
and
72 deletion
+34
-72
.gitignore
.gitignore
+1
-18
CMakeLists.txt
CMakeLists.txt
+1
-0
src/log.c
src/log.c
+23
-31
src/log.h
src/log.h
+9
-23
未找到文件。
.gitignore
浏览文件 @
f5437845
# Object files
# Object files
*.o
*.o
*.pyc
# Libraries
# Libraries
*.lib
*.lib
...
@@ -18,30 +19,12 @@
...
@@ -18,30 +19,12 @@
*.orig
*.orig
tags
tags
aclocal.m4
ar-lib
autom4te.cache
build
build
compile
config.guess
config.h
config.h
config.sub
config.log
config.status
depcomp
install-sh
libtool
ltmain.sh
missing
missing
**/Makefile.in
**/Makefile
**/Makefile
configure
lcrd.spec
lcrd.pc
*.tar.gz
*.tar.gz
m4/*
**/.deps
**/.deps
**/.dirstamp
**/.dirstamp
stamp-h1
CMakeLists.txt
浏览文件 @
f5437845
...
@@ -25,6 +25,7 @@ endif()
...
@@ -25,6 +25,7 @@ endif()
set
(
CMAKE_C_COMPILER
"gcc"
CACHE PATH
"c compiler"
)
set
(
CMAKE_C_COMPILER
"gcc"
CACHE PATH
"c compiler"
)
set
(
CMAKE_C_FLAGS
"-fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wall -Werror"
)
set
(
CMAKE_C_FLAGS
"-fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wall -Werror"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
"-Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIE -pie -shared -pthread"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
"-Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIE -pie -shared -pthread"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-D__FILENAME__='
\"
$(subst
${
CMAKE_SOURCE_DIR
}
/,,$(abspath $<))
\"
'"
)
configure_file
(
configure_file
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/config.h.in"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/config.h.in"
...
...
src/log.c
浏览文件 @
f5437845
...
@@ -39,8 +39,7 @@ const char * const g_clibcni_log_prio_name[] = {
...
@@ -39,8 +39,7 @@ const char * const g_clibcni_log_prio_name[] = {
static
__thread
char
*
g_clibcni_log_prefix
=
NULL
;
static
__thread
char
*
g_clibcni_log_prefix
=
NULL
;
static
char
*
g_clibcni_log_vmname
=
NULL
;
static
char
*
g_clibcni_log_module
=
NULL
;
static
bool
g_clibcni_log_quiet
=
false
;
static
int
g_clibcni_log_level
=
CLIBCNI_LOG_DEBUG
;
static
int
g_clibcni_log_level
=
CLIBCNI_LOG_DEBUG
;
static
int
g_clibcni_log_driver
=
LOG_DRIVER_STDOUT
;
static
int
g_clibcni_log_driver
=
LOG_DRIVER_STDOUT
;
int
g_clibcni_log_fd
=
-
1
;
int
g_clibcni_log_fd
=
-
1
;
...
@@ -65,10 +64,10 @@ void clibcni_free_log_prefix(void)
...
@@ -65,10 +64,10 @@ void clibcni_free_log_prefix(void)
static
ssize_t
write_nointr
(
int
fd
,
const
void
*
buf
,
size_t
count
);
static
ssize_t
write_nointr
(
int
fd
,
const
void
*
buf
,
size_t
count
);
static
void
log_append_logfile
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
static
void
do_fifo_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
const
char
*
msg
);
const
char
*
msg
);
static
void
log_append_stderr
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
static
void
do_stderr_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
const
char
*
msg
);
const
char
*
msg
);
/* engine change str logdriver to enum */
/* engine change str logdriver to enum */
...
@@ -156,7 +155,7 @@ static int do_check_log_configs(const struct clibcni_log_config *log)
...
@@ -156,7 +155,7 @@ static int do_check_log_configs(const struct clibcni_log_config *log)
return
-
1
;
return
-
1
;
}
}
invalid_arg
=
((
log
->
file
==
NULL
||
strcmp
(
log
->
file
,
"none"
)
==
0
)
&&
(
g_clibcni_log_driver
==
LOG_DRIVER_FIFO
));
invalid_arg
=
((
log
->
file
==
NULL
)
&&
(
g_clibcni_log_driver
==
LOG_DRIVER_FIFO
));
if
(
invalid_arg
)
{
if
(
invalid_arg
)
{
COMMAND_ERROR
(
"Must set log file for driver %s"
,
log
->
driver
);
COMMAND_ERROR
(
"Must set log file for driver %s"
,
log
->
driver
);
return
-
1
;
return
-
1
;
...
@@ -185,10 +184,9 @@ int clibcni_log_enable(const struct clibcni_log_config *log)
...
@@ -185,10 +184,9 @@ int clibcni_log_enable(const struct clibcni_log_config *log)
return
-
1
;
return
-
1
;
}
}
free
(
g_clibcni_log_
vmnam
e
);
free
(
g_clibcni_log_
modul
e
);
g_clibcni_log_
vmnam
e
=
util_strdup_s
(
log
->
name
);
g_clibcni_log_
modul
e
=
util_strdup_s
(
log
->
name
);
g_clibcni_log_quiet
=
log
->
quiet
;
full_path
=
util_strdup_s
(
log
->
file
);
full_path
=
util_strdup_s
(
log
->
file
);
nret
=
util_build_dir
(
full_path
);
nret
=
util_build_dir
(
full_path
);
...
@@ -213,22 +211,19 @@ out:
...
@@ -213,22 +211,19 @@ out:
return
nret
;
return
nret
;
}
}
static
int
do_log_
append_
by_driver
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
msg
,
static
int
do_log_by_driver
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
msg
,
const
char
*
date_time
)
const
char
*
date_time
)
{
{
switch
(
g_clibcni_log_driver
)
{
switch
(
g_clibcni_log_driver
)
{
case
LOG_DRIVER_STDOUT
:
case
LOG_DRIVER_STDOUT
:
if
(
g_clibcni_log_quiet
)
{
do_stderr_log
(
metadata
,
date_time
,
msg
);
break
;
}
log_append_stderr
(
metadata
,
date_time
,
msg
);
break
;
break
;
case
LOG_DRIVER_FIFO
:
case
LOG_DRIVER_FIFO
:
if
(
g_clibcni_log_fd
==
-
1
)
{
if
(
g_clibcni_log_fd
==
-
1
)
{
COMMAND_ERROR
(
"Do not set log file
\n
"
);
COMMAND_ERROR
(
"Do not set log file
\n
"
);
return
-
1
;
return
-
1
;
}
}
log_append_logfile
(
metadata
,
date_time
,
msg
);
do_fifo_log
(
metadata
,
date_time
,
msg
);
break
;
break
;
case
LOG_DRIVER_NOSET
:
case
LOG_DRIVER_NOSET
:
break
;
break
;
...
@@ -243,7 +238,7 @@ static char *parse_timespec_to_human()
...
@@ -243,7 +238,7 @@ static char *parse_timespec_to_human()
{
{
struct
timespec
timestamp
;
struct
timespec
timestamp
;
struct
tm
ptm
=
{
0
};
struct
tm
ptm
=
{
0
};
char
date_time
[
CLIBCNI_LOG_TIME_S
IZE
]
=
{
0
};
char
date_time
[
CLIBCNI_LOG_TIME_S
TR_MAX_LEN
]
=
{
0
};
int
nret
;
int
nret
;
#define SEC_TO_NSEC 1000000
#define SEC_TO_NSEC 1000000
#define FIRST_YEAR_OF_GMT 1900
#define FIRST_YEAR_OF_GMT 1900
...
@@ -258,11 +253,11 @@ static char *parse_timespec_to_human()
...
@@ -258,11 +253,11 @@ static char *parse_timespec_to_human()
return
NULL
;
return
NULL
;
}
}
nret
=
snprintf
(
date_time
,
CLIBCNI_LOG_TIME_S
IZE
,
"%04d%02d%02d%02d%02d%02d.%03ld"
,
nret
=
snprintf
(
date_time
,
CLIBCNI_LOG_TIME_S
TR_MAX_LEN
,
"%04d%02d%02d%02d%02d%02d.%03ld"
,
ptm
.
tm_year
+
FIRST_YEAR_OF_GMT
,
ptm
.
tm_mon
+
1
,
ptm
.
tm_mday
,
ptm
.
tm_hour
,
ptm
.
tm_min
,
ptm
.
tm_sec
,
ptm
.
tm_year
+
FIRST_YEAR_OF_GMT
,
ptm
.
tm_mon
+
1
,
ptm
.
tm_mday
,
ptm
.
tm_hour
,
ptm
.
tm_min
,
ptm
.
tm_sec
,
timestamp
.
tv_nsec
/
SEC_TO_NSEC
);
timestamp
.
tv_nsec
/
SEC_TO_NSEC
);
if
(
nret
<
0
||
nret
>=
CLIBCNI_LOG_TIME_S
IZE
)
{
if
(
nret
<
0
||
nret
>=
CLIBCNI_LOG_TIME_S
TR_MAX_LEN
)
{
COMMAND_ERROR
(
"Sprintf failed"
);
COMMAND_ERROR
(
"Sprintf failed"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -270,8 +265,8 @@ static char *parse_timespec_to_human()
...
@@ -270,8 +265,8 @@ static char *parse_timespec_to_human()
return
util_strdup_s
(
date_time
);
return
util_strdup_s
(
date_time
);
}
}
/* use to a
ppen
d log to driver */
/* use to a
d
d log to driver */
int
clibcni_log
_append
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
format
,
...)
int
clibcni_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
format
,
...)
{
{
int
rc
;
int
rc
;
char
msg
[
MAX_MSG_LENGTH
]
=
{
0
};
char
msg
[
MAX_MSG_LENGTH
]
=
{
0
};
...
@@ -294,7 +289,7 @@ int clibcni_log_append(const struct clibcni_log_object_metadata *metadata, const
...
@@ -294,7 +289,7 @@ int clibcni_log_append(const struct clibcni_log_object_metadata *metadata, const
goto
out
;
goto
out
;
}
}
ret
=
do_log_
append_
by_driver
(
metadata
,
msg
,
date_time
);
ret
=
do_log_by_driver
(
metadata
,
msg
,
date_time
);
out:
out:
free
(
date_time
);
free
(
date_time
);
...
@@ -318,7 +313,7 @@ static void do_write_log_into_file(int log_fd, char *log_msg, size_t max_len, si
...
@@ -318,7 +313,7 @@ static void do_write_log_into_file(int log_fd, char *log_msg, size_t max_len, si
}
}
/* log append logfile */
/* log append logfile */
static
void
log_append_logfile
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
static
void
do_fifo_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
const
char
*
msg
)
const
char
*
msg
)
{
{
char
log_buffer
[
CLIBCNI_LOG_BUFFER_SIZE
]
=
{
0
};
char
log_buffer
[
CLIBCNI_LOG_BUFFER_SIZE
]
=
{
0
};
...
@@ -335,20 +330,18 @@ static void log_append_logfile(const struct clibcni_log_object_metadata *metadat
...
@@ -335,20 +330,18 @@ static void log_append_logfile(const struct clibcni_log_object_metadata *metadat
return
;
return
;
}
}
tmp_prefix
=
g_clibcni_log_prefix
?
g_clibcni_log_prefix
:
g_clibcni_log_
vmnam
e
;
tmp_prefix
=
g_clibcni_log_prefix
?
g_clibcni_log_prefix
:
g_clibcni_log_
modul
e
;
if
(
tmp_prefix
!=
NULL
&&
strlen
(
tmp_prefix
)
>
MAX_LOG_PREFIX_LENGTH
)
{
if
(
tmp_prefix
!=
NULL
&&
strlen
(
tmp_prefix
)
>
MAX_LOG_PREFIX_LENGTH
)
{
tmp_prefix
=
tmp_prefix
+
(
strlen
(
tmp_prefix
)
-
MAX_LOG_PREFIX_LENGTH
);
tmp_prefix
=
tmp_prefix
+
(
strlen
(
tmp_prefix
)
-
MAX_LOG_PREFIX_LENGTH
);
}
}
nret
=
snprintf
(
log_buffer
,
sizeof
(
log_buffer
),
"%15s %s %-8s %s - %s:%s:%d - %s"
,
tmp_prefix
?
tmp_prefix
:
""
,
nret
=
snprintf
(
log_buffer
,
sizeof
(
log_buffer
),
"%15s %s %-8s %s:%s:%d - %s"
,
tmp_prefix
?
tmp_prefix
:
""
,
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
],
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
],
metadata
->
file
,
g_clibcni_log_vmname
?
g_clibcni_log_vmname
:
"clibcni"
,
metadata
->
file
,
metadata
->
func
,
metadata
->
line
,
msg
);
metadata
->
func
,
metadata
->
line
,
msg
);
if
(
nret
<
0
)
{
if
(
nret
<
0
)
{
nret
=
snprintf
(
log_buffer
,
sizeof
(
log_buffer
),
"%15s %s %-8s %s
- %s
:%s:%d - %s"
,
nret
=
snprintf
(
log_buffer
,
sizeof
(
log_buffer
),
"%15s %s %-8s %s:%s:%d - %s"
,
tmp_prefix
?
tmp_prefix
:
""
,
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
],
tmp_prefix
?
tmp_prefix
:
""
,
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
],
g_clibcni_log_vmname
?
g_clibcni_log_vmname
:
"clibcni"
,
metadata
->
file
,
metadata
->
file
,
metadata
->
func
,
metadata
->
line
,
"Large log message"
);
metadata
->
func
,
metadata
->
line
,
"Large log message"
);
if
(
nret
<
0
)
{
if
(
nret
<
0
)
{
return
;
return
;
}
}
...
@@ -359,7 +352,7 @@ static void log_append_logfile(const struct clibcni_log_object_metadata *metadat
...
@@ -359,7 +352,7 @@ static void log_append_logfile(const struct clibcni_log_object_metadata *metadat
}
}
/* log append stderr */
/* log append stderr */
static
void
log_append_stderr
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
static
void
do_stderr_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
timestamp
,
const
char
*
msg
)
const
char
*
msg
)
{
{
char
*
tmp_prefix
=
NULL
;
char
*
tmp_prefix
=
NULL
;
...
@@ -367,12 +360,11 @@ static void log_append_stderr(const struct clibcni_log_object_metadata *metadata
...
@@ -367,12 +360,11 @@ static void log_append_stderr(const struct clibcni_log_object_metadata *metadata
return
;
return
;
}
}
tmp_prefix
=
g_clibcni_log_prefix
?
g_clibcni_log_prefix
:
g_clibcni_log_
vmnam
e
;
tmp_prefix
=
g_clibcni_log_prefix
?
g_clibcni_log_prefix
:
g_clibcni_log_
modul
e
;
if
(
tmp_prefix
!=
NULL
&&
strlen
(
tmp_prefix
)
>
MAX_LOG_PREFIX_LENGTH
)
{
if
(
tmp_prefix
!=
NULL
&&
strlen
(
tmp_prefix
)
>
MAX_LOG_PREFIX_LENGTH
)
{
tmp_prefix
=
tmp_prefix
+
(
strlen
(
tmp_prefix
)
-
MAX_LOG_PREFIX_LENGTH
);
tmp_prefix
=
tmp_prefix
+
(
strlen
(
tmp_prefix
)
-
MAX_LOG_PREFIX_LENGTH
);
}
}
COMMAND_ERROR
(
"%15s %s %-8s "
,
tmp_prefix
?
tmp_prefix
:
""
,
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
]);
COMMAND_ERROR
(
"%15s %s %-8s "
,
tmp_prefix
?
tmp_prefix
:
""
,
timestamp
,
g_clibcni_log_prio_name
[
metadata
->
level
]);
COMMAND_ERROR
(
"%s - "
,
(
g_clibcni_log_vmname
?
g_clibcni_log_vmname
:
"clibcni"
));
COMMAND_ERROR
(
"%s:%s:%d - "
,
metadata
->
file
,
metadata
->
func
,
metadata
->
line
);
COMMAND_ERROR
(
"%s:%s:%d - "
,
metadata
->
file
,
metadata
->
func
,
metadata
->
line
);
COMMAND_ERROR
(
"%s
\n
"
,
msg
);
COMMAND_ERROR
(
"%s
\n
"
,
msg
);
}
}
...
...
src/log.h
浏览文件 @
f5437845
...
@@ -26,22 +26,13 @@ extern "C" {
...
@@ -26,22 +26,13 @@ extern "C" {
#define O_CLOEXEC 02000000
#define O_CLOEXEC 02000000
#endif
#endif
#ifndef F_DUPFD_CLOEXEC
#define F_DUPFD_CLOEXEC 1030
#endif
#define CLIBCNI_LOG_BUFFER_SIZE 4096
#define CLIBCNI_LOG_BUFFER_SIZE 4096
/* We're logging in seconds and nanoseconds. Assuming that the underlying
#define CLIBCNI_LOG_TIME_STR_MAX_LEN 21
* datatype is currently at maximum a 64bit integer, we have a date string that
* is of maximum length (2^64 - 1) * 2 = (21 + 21) = 42.
* */
#define CLIBCNI_LOG_TIME_SIZE 42
enum
clibcni_log_drivers
{
enum
clibcni_log_drivers
{
LOG_DRIVER_STDOUT
,
LOG_DRIVER_STDOUT
,
LOG_DRIVER_FIFO
,
LOG_DRIVER_FIFO
,
LOG_DRIVER_SYSLOG
,
LOG_DRIVER_NOSET
,
LOG_DRIVER_NOSET
,
};
};
...
@@ -64,14 +55,8 @@ struct clibcni_log_config {
...
@@ -64,14 +55,8 @@ struct clibcni_log_config {
const
char
*
priority
;
const
char
*
priority
;
const
char
*
prefix
;
const
char
*
prefix
;
const
char
*
driver
;
const
char
*
driver
;
bool
quiet
;
};
};
#define CLIBCNI_LOG_LOCINFO_INIT \
{ \
.file = __FILE__, .func = __func__, .line = __LINE__, \
}
/* brief logging event object */
/* brief logging event object */
struct
clibcni_log_object_metadata
{
struct
clibcni_log_object_metadata
{
/* location information of the logging item */
/* location information of the logging item */
...
@@ -88,13 +73,14 @@ void clibcni_set_log_prefix(const char *prefix);
...
@@ -88,13 +73,14 @@ void clibcni_set_log_prefix(const char *prefix);
void
clibcni_free_log_prefix
(
void
);
void
clibcni_free_log_prefix
(
void
);
int
clibcni_log
_append
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
format
,
...);
int
clibcni_log
(
const
struct
clibcni_log_object_metadata
*
metadata
,
const
char
*
format
,
...);
#define COMMON_LOG(loglevel, format, ...) \
#define COMMON_LOG(loglevel, format, ...) \
do { \
do { \
struct clibcni_log_object_metadata meta = CLIBCNI_LOG_LOCINFO_INIT; \
struct clibcni_log_object_metadata meta = { \
meta.level = loglevel; \
.file = __FILENAME__, .func = __func__, .line = __LINE__, .level = loglevel, \
(void)clibcni_log_append(&meta, format, ##__VA_ARGS__); \
}; \
(void)clibcni_log(&meta, format, ##__VA_ARGS__); \
} while (0)
} while (0)
#define DEBUG(format, ...) \
#define DEBUG(format, ...) \
...
@@ -135,4 +121,4 @@ int clibcni_log_append(const struct clibcni_log_object_metadata *metadata, const
...
@@ -135,4 +121,4 @@ int clibcni_log_append(const struct clibcni_log_object_metadata *metadata, const
}
}
#endif
#endif
#endif
/* __
LCR
_LOG_H */
#endif
/* __
CLIBCNI
_LOG_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录