@@ -59,6 +59,11 @@ FileLogSink::~FileLogSink() {
5959 absl::log_internal::RemoveLogSink (this );
6060 file_sink_ = nullptr ;
6161 }
62+ // Close the file pointer if it was opened
63+ if (fp_ != nullptr ) {
64+ fclose (fp_);
65+ fp_ = nullptr ;
66+ }
6267}
6368// Required for custom log formatting and writing to the driver's default log
6469// file
@@ -170,9 +175,19 @@ bool CanWriteToFile(std::string const& log_file, std::size_t new_log_size,
170175}
171176
172177bool TraceOptions::InitializeLogging (bool is_trace_override) {
178+ // suppress all stderr output
179+ std::call_once (absl_log_init_flag, []() { absl::InitializeLog (); });
180+ absl::SetStderrThreshold (absl::LogSeverityAtLeast::kInfinity );
181+
173182 if (!kTraceOptsFile .Ok ()) return false ;
174183 auto const & trace_opts = kTraceOptsFile .GetValue ();
175184
185+ // If logging is disabled, return false
186+ if (trace_opts->log_level <= 0 ) {
187+ trace_opts->logging_enabled = false ;
188+ return false ;
189+ }
190+
176191 // Logging already initialized and no override requested
177192 if (trace_opts->logging_enabled && !is_trace_override) {
178193 return true ;
@@ -186,23 +201,14 @@ bool TraceOptions::InitializeLogging(bool is_trace_override) {
186201 FileLogSink::InitializeFileLog (trace_opts);
187202 return true ;
188203 }
189- // If logging is disabled, suppress all stderr output
190- if (trace_opts->log_level <= 0 ) {
191- absl::SetStderrThreshold (absl::LogSeverityAtLeast::kInfinity );
192- return false ;
193- }
194204
195205 // Initialize Abseil logging and custom file sink
196- std::call_once (absl_log_init_flag, []() { absl::InitializeLog (); });
197206 auto log_severity =
198207 GetAbslSeverity (static_cast <LogLevel>(trace_opts->log_level ));
199208 absl::SetMinLogLevel (static_cast <absl::LogSeverityAtLeast>(log_severity));
200209
201210 FileLogSink::InitializeFileLog (trace_opts);
202211 trace_opts->logging_enabled = true ;
203-
204- // Disable Abseil's stderr logging
205- absl::SetStderrThreshold (absl::LogSeverityAtLeast::kInfinity );
206212 return true ;
207213}
208214
0 commit comments