/* * Copyright 2015 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "rtc_base/log_sinks.h" #include #include #include #include "rtc_base/checks.h" #include "rtc_base/stream.h" namespace rtc { FileRotatingLogSink::FileRotatingLogSink(const std::string& log_dir_path, const std::string& log_prefix, size_t max_log_size, size_t num_log_files) : FileRotatingLogSink(new FileRotatingStream(log_dir_path, log_prefix, max_log_size, num_log_files)) {} FileRotatingLogSink::FileRotatingLogSink(FileRotatingStream* stream) : stream_(stream) { RTC_DCHECK(stream); } FileRotatingLogSink::~FileRotatingLogSink() {} void FileRotatingLogSink::OnLogMessage(const std::string& message) { if (stream_->GetState() != SS_OPEN) { std::fprintf(stderr, "Init() must be called before adding this sink.\n"); return; } stream_->WriteAll(message.c_str(), message.size(), nullptr, nullptr); } void FileRotatingLogSink::OnLogMessage(const std::string& message, LoggingSeverity sev, const char* tag) { if (stream_->GetState() != SS_OPEN) { std::fprintf(stderr, "Init() must be called before adding this sink.\n"); return; } stream_->WriteAll(tag, strlen(tag), nullptr, nullptr); stream_->WriteAll(": ", 2, nullptr, nullptr); stream_->WriteAll(message.c_str(), message.size(), nullptr, nullptr); } bool FileRotatingLogSink::Init() { return stream_->Open(); } bool FileRotatingLogSink::DisableBuffering() { return stream_->DisableBuffering(); } CallSessionFileRotatingLogSink::CallSessionFileRotatingLogSink( const std::string& log_dir_path, size_t max_total_log_size) : FileRotatingLogSink( new CallSessionFileRotatingStream(log_dir_path, max_total_log_size)) { } CallSessionFileRotatingLogSink::~CallSessionFileRotatingLogSink() {} } // namespace rtc