Provide new srs log tank mode: ALL
The ALL mode will show logs at both console and save to file.
This commit is contained in:
parent
241a33b7b5
commit
5853becb61
|
|
@ -4,7 +4,7 @@
|
||||||
listen 1935;
|
listen 1935;
|
||||||
max_connections 1000;
|
max_connections 1000;
|
||||||
daemon off;
|
daemon off;
|
||||||
srs_log_tank console;
|
srs_log_tank all;
|
||||||
http_api {
|
http_api {
|
||||||
enabled on;
|
enabled on;
|
||||||
listen 1985;
|
listen 1985;
|
||||||
|
|
|
||||||
|
|
@ -6678,10 +6678,12 @@ string SrsConfig::get_ingest_input_url(SrsConfDirective* conf)
|
||||||
bool SrsConfig::get_log_tank_file()
|
bool SrsConfig::get_log_tank_file()
|
||||||
{
|
{
|
||||||
if (!srs_getenv("srs.srs_log_tank").empty()) { // SRS_SRS_LOG_TANK
|
if (!srs_getenv("srs.srs_log_tank").empty()) { // SRS_SRS_LOG_TANK
|
||||||
return srs_getenv("srs.srs_log_tank") != "console";
|
string tank = srs_getenv("srs.srs_log_tank");
|
||||||
|
return tank != "console" && tank != "";
|
||||||
}
|
}
|
||||||
if (!srs_getenv("srs.log_tank").empty()) { // SRS_LOG_TANK
|
if (!srs_getenv("srs.log_tank").empty()) { // SRS_LOG_TANK
|
||||||
return srs_getenv("srs.log_tank") != "console";
|
string tank = srs_getenv("srs.log_tank");
|
||||||
|
return tank != "console" && tank != "";
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool DEFAULT = true;
|
static bool DEFAULT = true;
|
||||||
|
|
@ -6695,7 +6697,28 @@ bool SrsConfig::get_log_tank_file()
|
||||||
return DEFAULT;
|
return DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
return conf->arg0() != "console";
|
string tank = conf->arg0();
|
||||||
|
return tank != "console" && tank != "";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SrsConfig::get_log_tank_all()
|
||||||
|
{
|
||||||
|
if (!srs_getenv("srs.srs_log_tank").empty()) { // SRS_SRS_LOG_TANK
|
||||||
|
string tank = srs_getenv("srs.srs_log_tank");
|
||||||
|
return tank == "all";
|
||||||
|
}
|
||||||
|
if (!srs_getenv("srs.log_tank").empty()) { // SRS_LOG_TANK
|
||||||
|
string tank = srs_getenv("srs.log_tank");
|
||||||
|
return tank == "all";
|
||||||
|
}
|
||||||
|
|
||||||
|
SrsConfDirective* conf = root->get("srs_log_tank");
|
||||||
|
if (!conf || conf->arg0().empty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string tank = conf->arg0();
|
||||||
|
return tank == "all";
|
||||||
}
|
}
|
||||||
|
|
||||||
string SrsConfig::get_log_level()
|
string SrsConfig::get_log_level()
|
||||||
|
|
|
||||||
|
|
@ -891,6 +891,8 @@ public:
|
||||||
public:
|
public:
|
||||||
// Whether log to file.
|
// Whether log to file.
|
||||||
virtual bool get_log_tank_file();
|
virtual bool get_log_tank_file();
|
||||||
|
// Whether log to all (both console and file).
|
||||||
|
virtual bool get_log_tank_all();
|
||||||
// Get the log level.
|
// Get the log level.
|
||||||
virtual std::string get_log_level();
|
virtual std::string get_log_level();
|
||||||
virtual std::string get_log_level_v2();
|
virtual std::string get_log_level_v2();
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ SrsFileLog::SrsFileLog()
|
||||||
|
|
||||||
fd = -1;
|
fd = -1;
|
||||||
log_to_file_tank = false;
|
log_to_file_tank = false;
|
||||||
|
log_to_all_tank = false;
|
||||||
utc = false;
|
utc = false;
|
||||||
|
|
||||||
mutex_ = new SrsThreadMutex();
|
mutex_ = new SrsThreadMutex();
|
||||||
|
|
@ -62,6 +63,7 @@ srs_error_t SrsFileLog::initialize()
|
||||||
_srs_config->subscribe(this);
|
_srs_config->subscribe(this);
|
||||||
|
|
||||||
log_to_file_tank = _srs_config->get_log_tank_file();
|
log_to_file_tank = _srs_config->get_log_tank_file();
|
||||||
|
log_to_all_tank = _srs_config->get_log_tank_all();
|
||||||
utc = _srs_config->get_utc_time();
|
utc = _srs_config->get_utc_time();
|
||||||
|
|
||||||
std::string level = _srs_config->get_log_level();
|
std::string level = _srs_config->get_log_level();
|
||||||
|
|
@ -78,7 +80,7 @@ void SrsFileLog::reopen()
|
||||||
::close(fd);
|
::close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!log_to_file_tank) {
|
if (!log_to_file_tank && !log_to_all_tank) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,6 +134,28 @@ void SrsFileLog::write_log(int& fd, char *str_log, int size, int level)
|
||||||
// add some to the end of char.
|
// add some to the end of char.
|
||||||
str_log[size++] = LOG_TAIL;
|
str_log[size++] = LOG_TAIL;
|
||||||
|
|
||||||
|
// if log_to_all_tank is true, output to both console and file
|
||||||
|
if (log_to_all_tank) {
|
||||||
|
// Output to console first
|
||||||
|
if (level <= SrsLogLevelTrace) {
|
||||||
|
printf("%.*s", size, str_log);
|
||||||
|
} else if (level == SrsLogLevelWarn) {
|
||||||
|
printf("\033[33m%.*s\033[0m", size, str_log);
|
||||||
|
} else{
|
||||||
|
printf("\033[31m%.*s\033[0m", size, str_log);
|
||||||
|
}
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
// Then write to file
|
||||||
|
if (fd < 0) {
|
||||||
|
open_log_file();
|
||||||
|
}
|
||||||
|
if (fd > 0) {
|
||||||
|
::write(fd, str_log, size);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// if not to file, to console and return.
|
// if not to file, to console and return.
|
||||||
if (!log_to_file_tank) {
|
if (!log_to_file_tank) {
|
||||||
// if is error msg, then print color msg.
|
// if is error msg, then print color msg.
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ private:
|
||||||
int fd;
|
int fd;
|
||||||
// Whether log to file tank
|
// Whether log to file tank
|
||||||
bool log_to_file_tank;
|
bool log_to_file_tank;
|
||||||
|
// Whether log to all (both console and file)
|
||||||
|
bool log_to_all_tank;
|
||||||
// Whether use utc time.
|
// Whether use utc time.
|
||||||
bool utc;
|
bool utc;
|
||||||
// TODO: FIXME: use macro define like SRS_MULTI_THREAD_LOG to switch enable log mutex or not.
|
// TODO: FIXME: use macro define like SRS_MULTI_THREAD_LOG to switch enable log mutex or not.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user