@@ -25,6 +25,8 @@ import (
2525 "slices"
2626 "strings"
2727 "sync"
28+
29+ "github.com/ibm-messaging/mq-container/pkg/syncwriter"
2830)
2931
3032type RotatingLogger struct {
@@ -86,24 +88,26 @@ func (r *RotatingLogger) Append(messageLine string, deduplicateLine bool) {
8688 // we will always log in the first instance of the log files
8789 logFilePath := r .instanceFileName (1 )
8890
91+ errOutput := syncwriter .For (os .Stderr )
92+
8993 // open the log file in append mode
9094 // for the gosec rule Id: G302 - Expect file permissions to be 0600 or less
9195 logFile , err := os .OpenFile (logFilePath , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0600 )
9296 if err != nil {
93- fmt .Printf ("Failed to open log file: %v\n " , err )
97+ errOutput .Printf ("Failed to open log file: %v\n " , err )
9498 return
9599 }
96100
97101 defer func (f * os.File ) {
98102 if err := logFile .Close (); err != nil {
99- fmt .Printf ("Error: %v, Failed to close log file: %s\n " , err , logFilePath )
103+ errOutput .Printf ("Error: %v, Failed to close log file: %s\n " , err , logFilePath )
100104 }
101105 }(logFile )
102106
103107 // check if the message should be appended to the file
104108 shouldBeAppended , err := r .checkIfMessageShouldBeAppended (logFilePath , messageLine , deduplicateLine )
105109 if err != nil {
106- fmt .Printf ("Failed to validate the currentLog and the lastLog line %v\n " , err )
110+ errOutput .Printf ("Failed to validate the currentLog and the lastLog line %v\n " , err )
107111 }
108112
109113 if ! shouldBeAppended {
@@ -113,7 +117,7 @@ func (r *RotatingLogger) Append(messageLine string, deduplicateLine bool) {
113117 // check if the logFileSize has exceeded the maxFileSize then perform the logrotation
114118 logFileSizeExceeded , err := r .checkIfLogFileSizeExceeded (len (messageLine ), logFile )
115119 if err != nil {
116- fmt .Printf ("Failed to validate log file size: %v\n " , err )
120+ errOutput .Printf ("Failed to validate log file size: %v\n " , err )
117121 return
118122 }
119123
@@ -122,33 +126,33 @@ func (r *RotatingLogger) Append(messageLine string, deduplicateLine bool) {
122126 // close the current log file
123127 err = logFile .Close ()
124128 if err != nil {
125- fmt .Printf ("Error: %v, Failed to close log file: %v\n " , err , logFile .Name ())
129+ errOutput .Printf ("Error: %v, Failed to close log file: %v\n " , err , logFile .Name ())
126130 }
127131
128132 // perform log rotation
129133 err = r .performLogRotation ()
130134 if err != nil {
131- fmt .Printf ("Failed to perform log-rotation: %v\n " , err )
135+ errOutput .Printf ("Failed to perform log-rotation: %v\n " , err )
132136 }
133137
134138 // open the newly created logFile
135139 logFile , err = os .OpenFile (logFilePath , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0600 )
136140 if err != nil {
137- fmt .Printf ("Failed to open log file: %v\n " , err )
141+ errOutput .Printf ("Failed to open log file: %v\n " , err )
138142 return
139143 }
140144
141145 defer func (f * os.File ) {
142146 if err := logFile .Close (); err != nil {
143- fmt .Printf ("Error: %v, Failed to close log file: %s\n " , err , logFilePath )
147+ errOutput .Printf ("Error: %v, Failed to close log file: %s\n " , err , logFilePath )
144148 }
145149 }(logFile )
146150 }
147151
148152 // append the message to the file
149153 _ , err = logFile .WriteString (messageLine )
150154 if err != nil {
151- fmt .Printf ("Failed to write to log file: %v\n " , err )
155+ errOutput .Printf ("Failed to write to log file: %v\n " , err )
152156 }
153157
154158}
@@ -225,7 +229,7 @@ func (r *RotatingLogger) getLogLastLine(logFilePath string) (string, error) {
225229
226230 defer func () {
227231 if err := logFile .Close (); err != nil {
228- fmt .Printf ("error closing logfile: %s" , logFilePath )
232+ syncwriter . For ( os . Stderr ) .Printf ("error closing logfile: %s" , logFilePath )
229233 }
230234 }()
231235
0 commit comments