@@ -144,11 +144,22 @@ static void fpm_stdio_child_said(struct fpm_event_s *ev, short which, void *arg)
144
144
zlog_stream_init_ex (log_stream , ZLOG_WARNING , STDERR_FILENO );
145
145
zlog_stream_set_decorating (log_stream , child -> wp -> config -> decorate_workers_output );
146
146
zlog_stream_set_wrapping (log_stream , ZLOG_TRUE );
147
- zlog_stream_set_msg_prefix (log_stream , "[pool %s] child %d said into %s: " ,
147
+ zlog_stream_set_msg_prefix (log_stream , STREAM_SET_MSG_PREFIX_FMT ,
148
148
child -> wp -> config -> name , (int ) child -> pid , is_stdout ? "stdout" : "stderr" );
149
149
zlog_stream_set_msg_quoting (log_stream , ZLOG_TRUE );
150
+ zlog_stream_set_is_stdout (log_stream , is_stdout );
151
+ zlog_stream_set_child_pid (log_stream , (int )child -> pid );
150
152
} else {
151
153
log_stream = child -> log_stream ;
154
+ // if fd type (stdout/stderr) or child's pid is changed,
155
+ // then the stream will be finished and msg's prefix will be reinitialized
156
+ if (log_stream -> is_stdout != (unsigned int )is_stdout || log_stream -> child_pid != (int )child -> pid ) {
157
+ zlog_stream_finish (log_stream );
158
+ zlog_stream_set_msg_prefix (log_stream , STREAM_SET_MSG_PREFIX_FMT ,
159
+ child -> wp -> config -> name , (int ) child -> pid , is_stdout ? "stdout" : "stderr" );
160
+ zlog_stream_set_is_stdout (log_stream , is_stdout );
161
+ zlog_stream_set_child_pid (log_stream , (int )child -> pid );
162
+ }
152
163
}
153
164
154
165
while (fifo_in || fifo_out ) {
0 commit comments