@@ -31,6 +31,7 @@ import (
3131 "github.com/ibm-messaging/mq-container/internal/command"
3232 "github.com/ibm-messaging/mq-container/pkg/logger"
3333 "github.com/ibm-messaging/mq-container/pkg/mqini"
34+ "github.com/ibm-messaging/mq-container/pkg/syncwriter"
3435)
3536
3637// var debug = false
@@ -241,10 +242,11 @@ func configureLogger(name string) (mirrorFunc, error) {
241242 d := getDebug ()
242243 switch f {
243244 case "json" :
244- log , err = logger .NewLogger (os .Stderr , d , true , name )
245+ log , err = logger .NewLogger (os .Stdout , d , true , name )
245246 if err != nil {
246247 return nil , err
247248 }
249+ mirrorLogWriter := syncwriter .For (os .Stdout )
248250 return func (msg string , isQMLog bool ) bool {
249251 arrLoggingConsoleExcludeIds := strings .Split (strings .ToUpper (os .Getenv ("MQ_LOGGING_CONSOLE_EXCLUDE_ID" )), "," )
250252 if isExcludedMsgIdPresent (msg , arrLoggingConsoleExcludeIds ) {
@@ -260,24 +262,25 @@ func configureLogger(name string) (mirrorFunc, error) {
260262 if err != nil {
261263 log .Printf ("Failed to unmarshall JSON in log message - %v" , msg )
262264 } else {
263- fmt .Println (msg )
265+ mirrorLogWriter .Println (msg )
264266 }
265267 } else {
266268 // The log being mirrored isn't JSON. This can happen only in case of 'mqsc' logs
267269 // Also if the logging source is from autocfgmqsc.LOG, then we have to construct the json string as per below logic
268270 if checkLogSourceForMirroring ("mqsc" ) && canMQSCLogBeMirroredToConsole (msg ) {
269271 logLevel := determineMQSCLogLevel (strings .TrimSpace (msg ))
270- fmt .Printf ("{\" ibm_datetime\" :\" %s\" ,\" type\" :\" mqsc_log\" ,\" loglevel\" :\" %s\" ,\" message\" :\" %s\" }\n " ,
272+ mirrorLogWriter .Printf ("{\" ibm_datetime\" :\" %s\" ,\" type\" :\" mqsc_log\" ,\" loglevel\" :\" %s\" ,\" message\" :\" %s\" }\n " ,
271273 getTimeStamp (), logLevel , strings .TrimSpace (msg ))
272274 }
273275 }
274276 return true
275277 }, nil
276278 case "basic" :
277- log , err = logger .NewLogger (os .Stderr , d , false , name )
279+ log , err = logger .NewLogger (os .Stdout , d , false , name )
278280 if err != nil {
279281 return nil , err
280282 }
283+ mirrorLogWriter := syncwriter .For (os .Stdout )
281284 return func (msg string , isQMLog bool ) bool {
282285 arrLoggingConsoleExcludeIds := strings .Split (strings .ToUpper (os .Getenv ("MQ_LOGGING_CONSOLE_EXCLUDE_ID" )), "," )
283286 if isExcludedMsgIdPresent (msg , arrLoggingConsoleExcludeIds ) {
@@ -294,18 +297,18 @@ func configureLogger(name string) (mirrorFunc, error) {
294297 if err != nil {
295298 log .Printf ("Failed to unmarshall JSON in log message - %v" , err )
296299 } else {
297- fmt .Print (formatBasic (obj ))
300+ mirrorLogWriter .Print (formatBasic (obj ))
298301 }
299302 } else {
300303 // The log being mirrored isn't JSON, so just print it. This can happen only in case of mqsc logs
301304 if checkLogSourceForMirroring ("mqsc" ) && canMQSCLogBeMirroredToConsole (msg ) {
302- log .Printf ( "%s" , strings .TrimSpace (msg ))
305+ log .Print ( strings .TrimSpace (msg ))
303306 }
304307 }
305308 return true
306309 }, nil
307310 default :
308- log , err = logger .NewLogger (os .Stdout , d , false , name )
311+ log , err = logger .NewLogger (os .Stderr , d , false , name )
309312 if err != nil {
310313 return nil , err
311314 }
0 commit comments