winlin

update pithy-print to 10s. refine log

@@ -902,24 +902,24 @@ vhost refer.anti_suck.com { @@ -902,24 +902,24 @@ vhost refer.anti_suck.com {
902 # whatever the clients in concurrency. 902 # whatever the clients in concurrency.
903 pithy_print { 903 pithy_print {
904 # shared print interval for all publish clients, in milliseconds. 904 # shared print interval for all publish clients, in milliseconds.
905 - # if not specified, set to 1100. 905 + # default: 10000
906 publish 10000; 906 publish 10000;
907 # shared print interval for all play clients, in milliseconds. 907 # shared print interval for all play clients, in milliseconds.
908 - # if not specified, set to 1300. 908 + # default: 10000
909 play 10000; 909 play 10000;
910 # shared print interval for all forwarders, in milliseconds. 910 # shared print interval for all forwarders, in milliseconds.
911 - # if not specified, set to 2000. 911 + # default: 10000
912 forwarder 10000; 912 forwarder 10000;
913 # shared print interval for all encoders, in milliseconds. 913 # shared print interval for all encoders, in milliseconds.
914 - # if not specified, set to 2000. 914 + # default: 10000
915 encoder 10000; 915 encoder 10000;
916 # shared print interval for all ingesters, in milliseconds. 916 # shared print interval for all ingesters, in milliseconds.
917 - # if not specified, set to 2000. 917 + # default: 10000
918 ingester 10000; 918 ingester 10000;
919 # shared print interval for all hls, in milliseconds. 919 # shared print interval for all hls, in milliseconds.
920 - # if not specified, set to 2000. 920 + # default: 10000
921 hls 10000; 921 hls 10000;
922 # shared print interval for all edge, in milliseconds. 922 # shared print interval for all edge, in milliseconds.
923 - # if not specified, set to 2000. 923 + # default: 10000
924 edge 10000; 924 edge 10000;
925 } 925 }
@@ -70,13 +70,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -70,13 +70,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
70 #define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080 70 #define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080
71 #define SRS_CONF_DEFAULT_HTTP_API_PORT 1985 71 #define SRS_CONF_DEFAULT_HTTP_API_PORT 1985
72 72
73 -#define SRS_STAGE_PLAY_USER_INTERVAL_MS 1300  
74 -#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 1100  
75 -#define SRS_STAGE_FORWARDER_INTERVAL_MS 2000  
76 -#define SRS_STAGE_ENCODER_INTERVAL_MS 2000  
77 -#define SRS_STAGE_INGESTER_INTERVAL_MS 2000  
78 -#define SRS_STAGE_HLS_INTERVAL_MS 2000  
79 -#define SRS_STAGE_EDGE_INTERVAL_MS 2000 73 +#define SRS_STAGE_PLAY_USER_INTERVAL_MS 10000
  74 +#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 10000
  75 +#define SRS_STAGE_FORWARDER_INTERVAL_MS 10000
  76 +#define SRS_STAGE_ENCODER_INTERVAL_MS 10000
  77 +#define SRS_STAGE_INGESTER_INTERVAL_MS 10000
  78 +#define SRS_STAGE_HLS_INTERVAL_MS 10000
  79 +#define SRS_STAGE_EDGE_INTERVAL_MS 10000
80 80
81 #define SRS_AUTO_INGEST_TYPE_FILE "file" 81 #define SRS_AUTO_INGEST_TYPE_FILE "file"
82 #define SRS_AUTO_INGEST_TYPE_STREAM "stream" 82 #define SRS_AUTO_INGEST_TYPE_STREAM "stream"
@@ -230,11 +230,11 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) @@ -230,11 +230,11 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg)
230 srs_error("source process onMetaData message failed. ret=%d", ret); 230 srs_error("source process onMetaData message failed. ret=%d", ret);
231 return ret; 231 return ret;
232 } 232 }
233 - srs_trace("process onMetaData message success."); 233 + srs_info("process onMetaData message success.");
234 return ret; 234 return ret;
235 } 235 }
236 236
237 - srs_trace("ignore AMF0/AMF3 data message."); 237 + srs_info("ignore AMF0/AMF3 data message.");
238 return ret; 238 return ret;
239 } 239 }
240 240
@@ -326,7 +326,7 @@ void SrsEncoder::encoder() @@ -326,7 +326,7 @@ void SrsEncoder::encoder()
326 // reportable 326 // reportable
327 if (pithy_print->can_print()) { 327 if (pithy_print->can_print()) {
328 // TODO: FIXME: show more info. 328 // TODO: FIXME: show more info.
329 - srs_trace("-> time=%"PRId64", encoders=%d, input=%s", 329 + srs_trace("-> "SRS_LOG_ID_ENCODER" time=%"PRId64", encoders=%d, input=%s",
330 pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str()); 330 pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str());
331 } 331 }
332 } 332 }
@@ -517,7 +517,7 @@ SrsHlsAacJitter::SrsHlsAacJitter() @@ -517,7 +517,7 @@ SrsHlsAacJitter::SrsHlsAacJitter()
517 SrsHlsMuxer::SrsHlsMuxer() 517 SrsHlsMuxer::SrsHlsMuxer()
518 { 518 {
519 hls_fragment = hls_window = 0; 519 hls_fragment = hls_window = 0;
520 - file_index = 0; 520 + _sequence_no = 0;
521 current = NULL; 521 current = NULL;
522 } 522 }
523 523
@@ -533,6 +533,11 @@ SrsHlsMuxer::~SrsHlsMuxer() @@ -533,6 +533,11 @@ SrsHlsMuxer::~SrsHlsMuxer()
533 srs_freep(current); 533 srs_freep(current);
534 } 534 }
535 535
  536 +int SrsHlsMuxer::sequence_no()
  537 +{
  538 + return _sequence_no;
  539 +}
  540 +
536 int SrsHlsMuxer::update_config( 541 int SrsHlsMuxer::update_config(
537 string _app, string _stream, string path, int fragment, int window 542 string _app, string _stream, string path, int fragment, int window
538 ) { 543 ) {
@@ -567,7 +572,7 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts) @@ -567,7 +572,7 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts)
567 572
568 // new segment. 573 // new segment.
569 current = new SrsHlsSegment(); 574 current = new SrsHlsSegment();
570 - current->sequence_no = file_index++; 575 + current->sequence_no = _sequence_no++;
571 current->segment_start_dts = segment_start_dts; 576 current->segment_start_dts = segment_start_dts;
572 577
573 // generate filename. 578 // generate filename.
@@ -690,7 +695,7 @@ int SrsHlsMuxer::segment_close(string log_desc) @@ -690,7 +695,7 @@ int SrsHlsMuxer::segment_close(string log_desc)
690 if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) { 695 if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) {
691 segments.push_back(current); 696 segments.push_back(current);
692 697
693 - srs_trace("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", 698 + srs_info("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
694 log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, 699 log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
695 current->segment_start_dts); 700 current->segment_start_dts);
696 701
@@ -709,7 +714,7 @@ int SrsHlsMuxer::segment_close(string log_desc) @@ -709,7 +714,7 @@ int SrsHlsMuxer::segment_close(string log_desc)
709 } 714 }
710 } else { 715 } else {
711 // reuse current segment index. 716 // reuse current segment index.
712 - file_index--; 717 + _sequence_no--;
713 718
714 srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", 719 srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"",
715 log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, 720 log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration,
@@ -1470,7 +1475,9 @@ void SrsHls::hls_mux() @@ -1470,7 +1475,9 @@ void SrsHls::hls_mux()
1470 { 1475 {
1471 // reportable 1476 // reportable
1472 if (pithy_print->can_print()) { 1477 if (pithy_print->can_print()) {
1473 - srs_trace("-> time=%"PRId64"", pithy_print->age()); 1478 + srs_trace("-> "SRS_LOG_ID_HLS
  1479 + " time=%"PRId64", dts=%"PRId64", sequence_no=%d",
  1480 + pithy_print->age(), stream_dts, muxer->sequence_no());
1474 } 1481 }
1475 1482
1476 pithy_print->elapse(); 1483 pithy_print->elapse();
@@ -147,7 +147,7 @@ private: @@ -147,7 +147,7 @@ private:
147 int hls_fragment; 147 int hls_fragment;
148 int hls_window; 148 int hls_window;
149 private: 149 private:
150 - int file_index; 150 + int _sequence_no;
151 std::string m3u8; 151 std::string m3u8;
152 private: 152 private:
153 /** 153 /**
@@ -162,6 +162,8 @@ public: @@ -162,6 +162,8 @@ public:
162 SrsHlsMuxer(); 162 SrsHlsMuxer();
163 virtual ~SrsHlsMuxer(); 163 virtual ~SrsHlsMuxer();
164 public: 164 public:
  165 + virtual int sequence_no();
  166 +public:
165 virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window); 167 virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window);
166 /** 168 /**
167 * open a new segment(a new ts file), 169 * open a new segment(a new ts file),
@@ -101,7 +101,7 @@ void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...) @@ -101,7 +101,7 @@ void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...)
101 } 101 }
102 102
103 int size = 0; 103 int size = 0;
104 - if (!generate_header(tag, context_id, "verb", &size)) { 104 + if (!generate_header(false, tag, context_id, "verb", &size)) {
105 return; 105 return;
106 } 106 }
107 107
@@ -121,7 +121,7 @@ void SrsFastLog::info(const char* tag, int context_id, const char* fmt, ...) @@ -121,7 +121,7 @@ void SrsFastLog::info(const char* tag, int context_id, const char* fmt, ...)
121 } 121 }
122 122
123 int size = 0; 123 int size = 0;
124 - if (!generate_header(tag, context_id, "debug", &size)) { 124 + if (!generate_header(false, tag, context_id, "debug", &size)) {
125 return; 125 return;
126 } 126 }
127 127
@@ -141,7 +141,7 @@ void SrsFastLog::trace(const char* tag, int context_id, const char* fmt, ...) @@ -141,7 +141,7 @@ void SrsFastLog::trace(const char* tag, int context_id, const char* fmt, ...)
141 } 141 }
142 142
143 int size = 0; 143 int size = 0;
144 - if (!generate_header(tag, context_id, "trace", &size)) { 144 + if (!generate_header(false, tag, context_id, "trace", &size)) {
145 return; 145 return;
146 } 146 }
147 147
@@ -161,7 +161,7 @@ void SrsFastLog::warn(const char* tag, int context_id, const char* fmt, ...) @@ -161,7 +161,7 @@ void SrsFastLog::warn(const char* tag, int context_id, const char* fmt, ...)
161 } 161 }
162 162
163 int size = 0; 163 int size = 0;
164 - if (!generate_header(tag, context_id, "warn", &size)) { 164 + if (!generate_header(true, tag, context_id, "warn", &size)) {
165 return; 165 return;
166 } 166 }
167 167
@@ -181,7 +181,7 @@ void SrsFastLog::error(const char* tag, int context_id, const char* fmt, ...) @@ -181,7 +181,7 @@ void SrsFastLog::error(const char* tag, int context_id, const char* fmt, ...)
181 } 181 }
182 182
183 int size = 0; 183 int size = 0;
184 - if (!generate_header(tag, context_id, "error", &size)) { 184 + if (!generate_header(true, tag, context_id, "error", &size)) {
185 return; 185 return;
186 } 186 }
187 187
@@ -245,7 +245,7 @@ int SrsFastLog::on_reload_log_file() @@ -245,7 +245,7 @@ int SrsFastLog::on_reload_log_file()
245 return ret; 245 return ret;
246 } 246 }
247 247
248 -bool SrsFastLog::generate_header(const char* tag, int context_id, const char* level_name, int* header_size) 248 +bool SrsFastLog::generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size)
249 { 249 {
250 // clock time 250 // clock time
251 timeval tv; 251 timeval tv;
@@ -262,16 +262,30 @@ bool SrsFastLog::generate_header(const char* tag, int context_id, const char* le @@ -262,16 +262,30 @@ bool SrsFastLog::generate_header(const char* tag, int context_id, const char* le
262 // write log header 262 // write log header
263 int log_header_size = -1; 263 int log_header_size = -1;
264 264
265 - if (tag) {  
266 - log_header_size = snprintf(log_data, LOG_MAX_SIZE,  
267 - "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ",  
268 - 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),  
269 - level_name, tag, context_id, errno); 265 + if (error) {
  266 + if (tag) {
  267 + log_header_size = snprintf(log_data, LOG_MAX_SIZE,
  268 + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ",
  269 + 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),
  270 + level_name, tag, context_id, errno);
  271 + } else {
  272 + log_header_size = snprintf(log_data, LOG_MAX_SIZE,
  273 + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ",
  274 + 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),
  275 + level_name, context_id, errno);
  276 + }
270 } else { 277 } else {
271 - log_header_size = snprintf(log_data, LOG_MAX_SIZE,  
272 - "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ",  
273 - 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),  
274 - level_name, context_id, errno); 278 + if (tag) {
  279 + log_header_size = snprintf(log_data, LOG_MAX_SIZE,
  280 + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d] ",
  281 + 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),
  282 + level_name, tag, context_id);
  283 + } else {
  284 + log_header_size = snprintf(log_data, LOG_MAX_SIZE,
  285 + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d] ",
  286 + 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),
  287 + level_name, context_id);
  288 + }
275 } 289 }
276 290
277 if (log_header_size == -1) { 291 if (log_header_size == -1) {
@@ -84,7 +84,7 @@ public: @@ -84,7 +84,7 @@ public:
84 virtual int on_reload_log_level(); 84 virtual int on_reload_log_level();
85 virtual int on_reload_log_file(); 85 virtual int on_reload_log_file();
86 private: 86 private:
87 - virtual bool generate_header(const char* tag, int context_id, const char* level_name, int* header_size); 87 + virtual bool generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size);
88 virtual void write_log(int& fd, char* str_log, int size, int level); 88 virtual void write_log(int& fd, char* str_log, int size, int level);
89 virtual void open_log_file(); 89 virtual void open_log_file();
90 }; 90 };
@@ -741,11 +741,11 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo @@ -741,11 +741,11 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo
741 srs_error("source process onMetaData message failed. ret=%d", ret); 741 srs_error("source process onMetaData message failed. ret=%d", ret);
742 return ret; 742 return ret;
743 } 743 }
744 - srs_trace("process onMetaData message success."); 744 + srs_info("process onMetaData message success.");
745 return ret; 745 return ret;
746 } 746 }
747 747
748 - srs_trace("ignore AMF0/AMF3 data message."); 748 + srs_info("ignore AMF0/AMF3 data message.");
749 return ret; 749 return ret;
750 } 750 }
751 751
@@ -158,5 +158,9 @@ extern ISrsThreadContext* _srs_context; @@ -158,5 +158,9 @@ extern ISrsThreadContext* _srs_context;
158 #define SRS_LOG_ID_WEB_PUBLISH "WPB" 158 #define SRS_LOG_ID_WEB_PUBLISH "WPB"
159 // ingester for edge(play)/origin 159 // ingester for edge(play)/origin
160 #define SRS_LOG_ID_INGESTER "IGS" 160 #define SRS_LOG_ID_INGESTER "IGS"
  161 +// hls log id.
  162 +#define SRS_LOG_ID_HLS "HLS"
  163 +// encoder log id.
  164 +#define SRS_LOG_ID_ENCODER "ENC"
161 165
162 #endif 166 #endif