Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
57e91054
Commit
57e91054
authored
Aug 30, 2021
by
ziyue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
合并日志相关pr: #1077
parent
7d456a05
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
43 行增加
和
73 行删除
+43
-73
3rdpart/ZLToolKit
+1
-1
api/include/mk_common.h
+11
-25
api/include/mk_events.h
+2
-2
api/source/mk_common.cpp
+17
-33
api/source/mk_events.cpp
+8
-7
api/tests/h264_media_server.c
+1
-0
api/tests/pusher.c
+1
-0
api/tests/server.c
+1
-0
api/tests/websocket.c
+1
-0
src/Common/config.cpp
+0
-1
src/Common/config.h
+0
-4
没有找到文件。
ZLToolKit
@
36d1122f
Subproject commit
6214f5028763c5245d79d4c6c9d50bc780c8d6b
7
Subproject commit
36d1122f42ab6b92d0ca8f57df0462acc632efc
7
api/include/mk_common.h
查看文件 @
57e91054
...
...
@@ -38,18 +38,25 @@
extern
"C"
{
#endif
//输出日志到shell
#define LOG_CONSOLE (1 << 0)
//输出日志到文件
#define LOG_FILE (1 << 1)
//输出日志到回调函数(mk_events::on_mk_log)
#define LOG_CALLBACK (1 << 2)
typedef
struct
{
// 线程数
int
thread_num
;
// 日志级别,支持0~4
int
log_level
;
//控制日志输出的掩模,请查看LOG_CONSOLE、LOG_FILE、LOG_CALLBACK等宏
int
log_mask
;
//文件日志保存路径,路径可以不存在(内部可以创建文件夹),设置为NULL关闭日志输出至文件
const
char
*
log_file_path
;
//文件日志保存天数,设置为0关闭日志文件
int
log_file_days
;
// 是否关闭 控制台 日志
int
disable_console_log
;
// 配置文件是内容还是路径
int
ini_is_path
;
...
...
@@ -79,6 +86,7 @@ API_EXPORT void API_CALL mk_stop_all_server();
* 基础类型参数版本的mk_env_init,为了方便其他语言调用
* @param thread_num 线程数
* @param log_level 日志级别,支持0~4
* @param log_mask 日志输出方式掩模,请查看LOG_CONSOLE、LOG_FILE、LOG_CALLBACK等宏
* @param log_file_path 文件日志保存路径,路径可以不存在(内部可以创建文件夹),设置为NULL关闭日志输出至文件
* @param log_file_days 文件日志保存天数,设置为0关闭日志文件
* @param ini_is_path 配置文件是内容还是路径
...
...
@@ -89,6 +97,7 @@ API_EXPORT void API_CALL mk_stop_all_server();
*/
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
int
log_level
,
int
log_mask
,
const
char
*
log_file_path
,
int
log_file_days
,
int
ini_is_path
,
...
...
@@ -96,29 +105,6 @@ API_EXPORT void API_CALL mk_env_init1(int thread_num,
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
);
/**
* 基础类型参数版本的mk_env_init,为了方便其他语言调用
* @param thread_num 线程数
* @param log_level 日志级别,支持0~4
* @param log_file_path 文件日志保存路径,路径可以不存在(内部可以创建文件夹),设置为NULL关闭日志输出至文件
* @param log_file_days 文件日志保存天数,设置为0关闭日志文件
* @param ini_is_path 配置文件是内容还是路径
* @param ini 配置文件内容或路径,可以为NULL,如果该文件不存在,那么将导出默认配置至该文件
* @param ssl_is_path ssl证书是内容还是路径
* @param ssl ssl证书内容或路径,可以为NULL
* @param ssl_pwd 证书密码,可以为NULL
* @param disable_console_log 是否关闭 控制台 日志
*/
API_EXPORT
void
API_CALL
mk_env_init2
(
int
thread_num
,
int
log_level
,
const
char
*
log_file_path
,
int
log_file_days
,
int
ini_is_path
,
const
char
*
ini
,
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
,
int
disable_console_log
);
/**
* 设置配置项
...
...
api/include/mk_events.h
查看文件 @
57e91054
...
...
@@ -159,10 +159,10 @@ typedef struct {
* @param level 日志级别
* @param file 源文件名
* @param line 源文件行
* @param function 源文件
方法
* @param function 源文件
函数名
* @param message 日志内容
*/
void
(
API_CALL
*
on_mk_log
)(
int
level
,
const
char
*
file
,
int
line
,
const
char
*
function
,
const
char
*
message
);
void
(
API_CALL
*
on_mk_log
)(
int
level
,
const
char
*
file
,
int
line
,
const
char
*
function
,
const
char
*
message
);
}
mk_events
;
...
...
api/source/mk_common.cpp
查看文件 @
57e91054
...
...
@@ -35,18 +35,19 @@ static std::shared_ptr<RtpServer> rtpServer;
#endif
//////////////////////////environment init///////////////////////////
API_EXPORT
void
API_CALL
mk_env_init
(
const
mk_config
*
cfg
)
{
assert
(
cfg
);
mk_env_init
2
(
cfg
->
thread_num
,
mk_env_init
1
(
cfg
->
thread_num
,
cfg
->
log_level
,
cfg
->
log_mask
,
cfg
->
log_file_path
,
cfg
->
log_file_days
,
cfg
->
ini_is_path
,
cfg
->
ini
,
cfg
->
ssl_is_path
,
cfg
->
ssl
,
cfg
->
ssl_pwd
,
cfg
->
disable_console_log
);
cfg
->
ssl_pwd
);
}
extern
void
stopAllTcpServer
();
...
...
@@ -63,6 +64,7 @@ API_EXPORT void API_CALL mk_stop_all_server(){
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
int
log_level
,
int
log_mask
,
const
char
*
log_file_path
,
int
log_file_days
,
int
ini_is_path
,
...
...
@@ -70,42 +72,24 @@ API_EXPORT void API_CALL mk_env_init1(int thread_num,
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
)
{
mk_env_init2
(
thread_num
,
log_level
,
log_file_path
,
log_file_days
,
ini_is_path
,
ini
,
ssl_is_path
,
ssl
,
ssl_pwd
,
0
);
}
API_EXPORT
void
API_CALL
mk_env_init2
(
int
thread_num
,
int
log_level
,
const
char
*
log_file_path
,
int
log_file_days
,
int
ini_is_path
,
const
char
*
ini
,
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
,
int
disable_console_log
)
{
//确保只初始化一次
static
onceToken
token
([
&
]()
{
if
(
disable_console_log
)
{
// 广播日志
Logger
::
Instance
().
add
(
std
::
make_shared
<
EventChannel
>
(
"EventChannel"
,
(
LogLevel
)
log_level
));
}
else
{
if
(
log_mask
&
LOG_CONSOLE
)
{
//控制台日志
Logger
::
Instance
().
add
(
std
::
make_shared
<
ConsoleChannel
>
(
"ConsoleChannel"
,
(
LogLevel
)
log_level
));
}
if
(
log_file_path
&&
log_file_days
){
if
(
log_mask
&
LOG_CALLBACK
)
{
//广播日志
Logger
::
Instance
().
add
(
std
::
make_shared
<
EventChannel
>
(
"EventChannel"
,
(
LogLevel
)
log_level
));
}
if
(
log_mask
&
LOG_FILE
)
{
//日志文件
auto
channel
=
std
::
make_shared
<
FileChannel
>
(
"FileChannel"
,
File
::
absolutePath
(
log_file_path
,
""
),
(
LogLevel
)
log_level
);
auto
channel
=
std
::
make_shared
<
FileChannel
>
(
"FileChannel"
,
log_file_path
?
File
::
absolutePath
(
log_file_path
,
""
)
:
exeDir
()
+
"log/"
,
(
LogLevel
)
log_level
);
channel
->
setMaxDay
(
log_file_days
?
log_file_days
:
1
);
Logger
::
Instance
().
add
(
channel
);
}
...
...
api/source/mk_events.cpp
查看文件 @
57e91054
...
...
@@ -20,13 +20,13 @@ static void* s_tag;
static
mk_events
s_events
=
{
0
};
API_EXPORT
void
API_CALL
mk_events_listen
(
const
mk_events
*
events
){
if
(
events
)
{
memcpy
(
&
s_events
,
events
,
sizeof
(
s_events
));
}
else
{
memset
(
&
s_events
,
0
,
sizeof
(
s_events
));
if
(
events
)
{
memcpy
(
&
s_events
,
events
,
sizeof
(
s_events
));
}
else
{
memset
(
&
s_events
,
0
,
sizeof
(
s_events
));
}
static
onceToken
tok
ne
([]{
static
onceToken
tok
en
([]{
NoticeCenter
::
Instance
().
addListener
(
&
s_tag
,
Broadcast
::
kBroadcastMediaChanged
,[](
BroadcastMediaChangedArgs
){
if
(
s_events
.
on_mk_media_changed
){
s_events
.
on_mk_media_changed
(
bRegist
,
...
...
@@ -152,9 +152,10 @@ API_EXPORT void API_CALL mk_events_listen(const mk_events *events){
}
});
NoticeCenter
::
Instance
().
addListener
(
&
s_tag
,
Broadcast
::
kBroadcastLog
,[](
BroadcastLog
Args
){
NoticeCenter
::
Instance
().
addListener
(
&
s_tag
,
EventChannel
::
kBroadcastLogEvent
,[](
BroadcastLogEvent
Args
){
if
(
s_events
.
on_mk_log
)
{
s_events
.
on_mk_log
((
int
)
level
,
file
,
line
,
function
,
message
);
auto
log
=
ctx
->
str
();
s_events
.
on_mk_log
((
int
)
ctx
->
_level
,
ctx
->
_file
.
data
(),
ctx
->
_line
,
ctx
->
_function
.
data
(),
log
.
data
());
}
});
});
...
...
api/tests/h264_media_server.c
查看文件 @
57e91054
...
...
@@ -37,6 +37,7 @@ int main(int argc, char *argv[]) {
.
ini
=
NULL
,
.
ini_is_path
=
1
,
.
log_level
=
0
,
.
log_mask
=
LOG_CONSOLE
,
.
log_file_path
=
NULL
,
.
log_file_days
=
0
,
.
ssl
=
NULL
,
...
...
api/tests/pusher.c
查看文件 @
57e91054
...
...
@@ -164,6 +164,7 @@ int main(int argc, char *argv[]){
.
ini
=
NULL
,
.
ini_is_path
=
0
,
.
log_level
=
0
,
.
log_mask
=
LOG_CONSOLE
,
.
ssl
=
NULL
,
.
ssl_is_path
=
1
,
.
ssl_pwd
=
NULL
,
...
...
api/tests/server.c
查看文件 @
57e91054
...
...
@@ -402,6 +402,7 @@ int main(int argc, char *argv[]) {
.
ini
=
ini_path
,
.
ini_is_path
=
1
,
.
log_level
=
0
,
.
log_mask
=
LOG_CONSOLE
,
.
log_file_path
=
NULL
,
.
log_file_days
=
0
,
.
ssl
=
ssl_path
,
...
...
api/tests/websocket.c
查看文件 @
57e91054
...
...
@@ -190,6 +190,7 @@ int main(int argc, char *argv[]) {
.
ini
=
ini_path
,
.
ini_is_path
=
1
,
.
log_level
=
0
,
.
log_mask
=
LOG_CONSOLE
,
.
ssl
=
ssl_path
,
.
ssl_is_path
=
1
,
.
ssl_pwd
=
NULL
,
...
...
src/Common/config.cpp
查看文件 @
57e91054
...
...
@@ -53,7 +53,6 @@ const string kBroadcastShellLogin = "kBroadcastShellLogin";
const
string
kBroadcastNotFoundStream
=
"kBroadcastNotFoundStream"
;
const
string
kBroadcastStreamNoneReader
=
"kBroadcastStreamNoneReader"
;
const
string
kBroadcastHttpBeforeAccess
=
"kBroadcastHttpBeforeAccess"
;
const
string
kBroadcastLog
=
"kBroadcastEventLog"
;
}
//namespace Broadcast
//通用配置项目
...
...
src/Common/config.h
查看文件 @
57e91054
...
...
@@ -105,10 +105,6 @@ extern const string kBroadcastStreamNoneReader;
extern
const
string
kBroadcastReloadConfig
;
#define BroadcastReloadConfigArgs void
//日志输出广播,目的是为了通过C API运行时,由上级程序打印日志
extern
const
string
kBroadcastLog
;
#define BroadcastLogArgs const LogLevel level, const char* file, int line, const char* function, const char* message
#define ReloadConfigTag ((void *)(0xFF))
#define RELOAD_KEY(arg,key) \
do { \
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论