mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
update pithy-print to 10s. refine log
This commit is contained in:
parent
243a2eabf5
commit
a4410a4fa9
10 changed files with 68 additions and 41 deletions
|
@ -902,24 +902,24 @@ vhost refer.anti_suck.com {
|
||||||
# whatever the clients in concurrency.
|
# whatever the clients in concurrency.
|
||||||
pithy_print {
|
pithy_print {
|
||||||
# shared print interval for all publish clients, in milliseconds.
|
# shared print interval for all publish clients, in milliseconds.
|
||||||
# if not specified, set to 1100.
|
# default: 10000
|
||||||
publish 10000;
|
publish 10000;
|
||||||
# shared print interval for all play clients, in milliseconds.
|
# shared print interval for all play clients, in milliseconds.
|
||||||
# if not specified, set to 1300.
|
# default: 10000
|
||||||
play 10000;
|
play 10000;
|
||||||
# shared print interval for all forwarders, in milliseconds.
|
# shared print interval for all forwarders, in milliseconds.
|
||||||
# if not specified, set to 2000.
|
# default: 10000
|
||||||
forwarder 10000;
|
forwarder 10000;
|
||||||
# shared print interval for all encoders, in milliseconds.
|
# shared print interval for all encoders, in milliseconds.
|
||||||
# if not specified, set to 2000.
|
# default: 10000
|
||||||
encoder 10000;
|
encoder 10000;
|
||||||
# shared print interval for all ingesters, in milliseconds.
|
# shared print interval for all ingesters, in milliseconds.
|
||||||
# if not specified, set to 2000.
|
# default: 10000
|
||||||
ingester 10000;
|
ingester 10000;
|
||||||
# shared print interval for all hls, in milliseconds.
|
# shared print interval for all hls, in milliseconds.
|
||||||
# if not specified, set to 2000.
|
# default: 10000
|
||||||
hls 10000;
|
hls 10000;
|
||||||
# shared print interval for all edge, in milliseconds.
|
# shared print interval for all edge, in milliseconds.
|
||||||
# if not specified, set to 2000.
|
# default: 10000
|
||||||
edge 10000;
|
edge 10000;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,13 +70,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080
|
#define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080
|
||||||
#define SRS_CONF_DEFAULT_HTTP_API_PORT 1985
|
#define SRS_CONF_DEFAULT_HTTP_API_PORT 1985
|
||||||
|
|
||||||
#define SRS_STAGE_PLAY_USER_INTERVAL_MS 1300
|
#define SRS_STAGE_PLAY_USER_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 1100
|
#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_FORWARDER_INTERVAL_MS 2000
|
#define SRS_STAGE_FORWARDER_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_ENCODER_INTERVAL_MS 2000
|
#define SRS_STAGE_ENCODER_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_INGESTER_INTERVAL_MS 2000
|
#define SRS_STAGE_INGESTER_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_HLS_INTERVAL_MS 2000
|
#define SRS_STAGE_HLS_INTERVAL_MS 10000
|
||||||
#define SRS_STAGE_EDGE_INTERVAL_MS 2000
|
#define SRS_STAGE_EDGE_INTERVAL_MS 10000
|
||||||
|
|
||||||
#define SRS_AUTO_INGEST_TYPE_FILE "file"
|
#define SRS_AUTO_INGEST_TYPE_FILE "file"
|
||||||
#define SRS_AUTO_INGEST_TYPE_STREAM "stream"
|
#define SRS_AUTO_INGEST_TYPE_STREAM "stream"
|
||||||
|
|
|
@ -230,11 +230,11 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg)
|
||||||
srs_error("source process onMetaData message failed. ret=%d", ret);
|
srs_error("source process onMetaData message failed. ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
srs_trace("process onMetaData message success.");
|
srs_info("process onMetaData message success.");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
srs_trace("ignore AMF0/AMF3 data message.");
|
srs_info("ignore AMF0/AMF3 data message.");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -326,7 +326,7 @@ void SrsEncoder::encoder()
|
||||||
// reportable
|
// reportable
|
||||||
if (pithy_print->can_print()) {
|
if (pithy_print->can_print()) {
|
||||||
// TODO: FIXME: show more info.
|
// TODO: FIXME: show more info.
|
||||||
srs_trace("-> time=%"PRId64", encoders=%d, input=%s",
|
srs_trace("-> "SRS_LOG_ID_ENCODER" time=%"PRId64", encoders=%d, input=%s",
|
||||||
pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str());
|
pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -517,7 +517,7 @@ SrsHlsAacJitter::SrsHlsAacJitter()
|
||||||
SrsHlsMuxer::SrsHlsMuxer()
|
SrsHlsMuxer::SrsHlsMuxer()
|
||||||
{
|
{
|
||||||
hls_fragment = hls_window = 0;
|
hls_fragment = hls_window = 0;
|
||||||
file_index = 0;
|
_sequence_no = 0;
|
||||||
current = NULL;
|
current = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -533,6 +533,11 @@ SrsHlsMuxer::~SrsHlsMuxer()
|
||||||
srs_freep(current);
|
srs_freep(current);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SrsHlsMuxer::sequence_no()
|
||||||
|
{
|
||||||
|
return _sequence_no;
|
||||||
|
}
|
||||||
|
|
||||||
int SrsHlsMuxer::update_config(
|
int SrsHlsMuxer::update_config(
|
||||||
string _app, string _stream, string path, int fragment, int window
|
string _app, string _stream, string path, int fragment, int window
|
||||||
) {
|
) {
|
||||||
|
@ -567,7 +572,7 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts)
|
||||||
|
|
||||||
// new segment.
|
// new segment.
|
||||||
current = new SrsHlsSegment();
|
current = new SrsHlsSegment();
|
||||||
current->sequence_no = file_index++;
|
current->sequence_no = _sequence_no++;
|
||||||
current->segment_start_dts = segment_start_dts;
|
current->segment_start_dts = segment_start_dts;
|
||||||
|
|
||||||
// generate filename.
|
// generate filename.
|
||||||
|
@ -690,7 +695,7 @@ int SrsHlsMuxer::segment_close(string log_desc)
|
||||||
if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) {
|
if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) {
|
||||||
segments.push_back(current);
|
segments.push_back(current);
|
||||||
|
|
||||||
srs_trace("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
|
srs_info("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
|
||||||
log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
|
log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
|
||||||
current->segment_start_dts);
|
current->segment_start_dts);
|
||||||
|
|
||||||
|
@ -709,7 +714,7 @@ int SrsHlsMuxer::segment_close(string log_desc)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// reuse current segment index.
|
// reuse current segment index.
|
||||||
file_index--;
|
_sequence_no--;
|
||||||
|
|
||||||
srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
|
srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
|
||||||
log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
|
log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
|
||||||
|
@ -1470,7 +1475,9 @@ void SrsHls::hls_mux()
|
||||||
{
|
{
|
||||||
// reportable
|
// reportable
|
||||||
if (pithy_print->can_print()) {
|
if (pithy_print->can_print()) {
|
||||||
srs_trace("-> time=%"PRId64"", pithy_print->age());
|
srs_trace("-> "SRS_LOG_ID_HLS
|
||||||
|
" time=%"PRId64", dts=%"PRId64", sequence_no=%d",
|
||||||
|
pithy_print->age(), stream_dts, muxer->sequence_no());
|
||||||
}
|
}
|
||||||
|
|
||||||
pithy_print->elapse();
|
pithy_print->elapse();
|
||||||
|
|
|
@ -147,7 +147,7 @@ private:
|
||||||
int hls_fragment;
|
int hls_fragment;
|
||||||
int hls_window;
|
int hls_window;
|
||||||
private:
|
private:
|
||||||
int file_index;
|
int _sequence_no;
|
||||||
std::string m3u8;
|
std::string m3u8;
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
@ -161,6 +161,8 @@ private:
|
||||||
public:
|
public:
|
||||||
SrsHlsMuxer();
|
SrsHlsMuxer();
|
||||||
virtual ~SrsHlsMuxer();
|
virtual ~SrsHlsMuxer();
|
||||||
|
public:
|
||||||
|
virtual int sequence_no();
|
||||||
public:
|
public:
|
||||||
virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window);
|
virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window);
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -101,7 +101,7 @@ void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!generate_header(tag, context_id, "verb", &size)) {
|
if (!generate_header(false, tag, context_id, "verb", &size)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ void SrsFastLog::info(const char* tag, int context_id, const char* fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!generate_header(tag, context_id, "debug", &size)) {
|
if (!generate_header(false, tag, context_id, "debug", &size)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ void SrsFastLog::trace(const char* tag, int context_id, const char* fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!generate_header(tag, context_id, "trace", &size)) {
|
if (!generate_header(false, tag, context_id, "trace", &size)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ void SrsFastLog::warn(const char* tag, int context_id, const char* fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!generate_header(tag, context_id, "warn", &size)) {
|
if (!generate_header(true, tag, context_id, "warn", &size)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ void SrsFastLog::error(const char* tag, int context_id, const char* fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!generate_header(tag, context_id, "error", &size)) {
|
if (!generate_header(true, tag, context_id, "error", &size)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ int SrsFastLog::on_reload_log_file()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SrsFastLog::generate_header(const char* tag, int context_id, const char* level_name, int* header_size)
|
bool SrsFastLog::generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size)
|
||||||
{
|
{
|
||||||
// clock time
|
// clock time
|
||||||
timeval tv;
|
timeval tv;
|
||||||
|
@ -262,16 +262,30 @@ bool SrsFastLog::generate_header(const char* tag, int context_id, const char* le
|
||||||
// write log header
|
// write log header
|
||||||
int log_header_size = -1;
|
int log_header_size = -1;
|
||||||
|
|
||||||
if (tag) {
|
if (error) {
|
||||||
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
if (tag) {
|
||||||
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ",
|
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
||||||
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ",
|
||||||
level_name, tag, context_id, errno);
|
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
||||||
|
level_name, tag, context_id, errno);
|
||||||
|
} else {
|
||||||
|
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
||||||
|
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ",
|
||||||
|
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
||||||
|
level_name, context_id, errno);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
if (tag) {
|
||||||
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ",
|
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
||||||
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d] ",
|
||||||
level_name, context_id, errno);
|
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
||||||
|
level_name, tag, context_id);
|
||||||
|
} else {
|
||||||
|
log_header_size = snprintf(log_data, LOG_MAX_SIZE,
|
||||||
|
"[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d] ",
|
||||||
|
1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000),
|
||||||
|
level_name, context_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (log_header_size == -1) {
|
if (log_header_size == -1) {
|
||||||
|
|
|
@ -84,7 +84,7 @@ public:
|
||||||
virtual int on_reload_log_level();
|
virtual int on_reload_log_level();
|
||||||
virtual int on_reload_log_file();
|
virtual int on_reload_log_file();
|
||||||
private:
|
private:
|
||||||
virtual bool generate_header(const char* tag, int context_id, const char* level_name, int* header_size);
|
virtual bool generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size);
|
||||||
virtual void write_log(int& fd, char* str_log, int size, int level);
|
virtual void write_log(int& fd, char* str_log, int size, int level);
|
||||||
virtual void open_log_file();
|
virtual void open_log_file();
|
||||||
};
|
};
|
||||||
|
|
|
@ -741,11 +741,11 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo
|
||||||
srs_error("source process onMetaData message failed. ret=%d", ret);
|
srs_error("source process onMetaData message failed. ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
srs_trace("process onMetaData message success.");
|
srs_info("process onMetaData message success.");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
srs_trace("ignore AMF0/AMF3 data message.");
|
srs_info("ignore AMF0/AMF3 data message.");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -158,5 +158,9 @@ extern ISrsThreadContext* _srs_context;
|
||||||
#define SRS_LOG_ID_WEB_PUBLISH "WPB"
|
#define SRS_LOG_ID_WEB_PUBLISH "WPB"
|
||||||
// ingester for edge(play)/origin
|
// ingester for edge(play)/origin
|
||||||
#define SRS_LOG_ID_INGESTER "IGS"
|
#define SRS_LOG_ID_INGESTER "IGS"
|
||||||
|
// hls log id.
|
||||||
|
#define SRS_LOG_ID_HLS "HLS"
|
||||||
|
// encoder log id.
|
||||||
|
#define SRS_LOG_ID_ENCODER "ENC"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue