Home | History | Annotate | Download | only in base
      1 /*
      2  *  Copyright 2015 The WebRTC Project Authors. All rights reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #include "webrtc/base/logsinks.h"
     12 
     13 #include <iostream>
     14 #include <string>
     15 
     16 #include "webrtc/base/checks.h"
     17 
     18 namespace rtc {
     19 
     20 FileRotatingLogSink::FileRotatingLogSink(const std::string& log_dir_path,
     21                                          const std::string& log_prefix,
     22                                          size_t max_log_size,
     23                                          size_t num_log_files)
     24     : FileRotatingLogSink(new FileRotatingStream(log_dir_path,
     25                                                  log_prefix,
     26                                                  max_log_size,
     27                                                  num_log_files)) {
     28 }
     29 
     30 FileRotatingLogSink::FileRotatingLogSink(FileRotatingStream* stream)
     31     : stream_(stream) {
     32   RTC_DCHECK(stream);
     33 }
     34 
     35 FileRotatingLogSink::~FileRotatingLogSink() {
     36 }
     37 
     38 void FileRotatingLogSink::OnLogMessage(const std::string& message) {
     39   if (stream_->GetState() != SS_OPEN) {
     40     std::cerr << "Init() must be called before adding this sink." << std::endl;
     41     return;
     42   }
     43   stream_->WriteAll(message.c_str(), message.size(), nullptr, nullptr);
     44 }
     45 
     46 bool FileRotatingLogSink::Init() {
     47   return stream_->Open();
     48 }
     49 
     50 bool FileRotatingLogSink::DisableBuffering() {
     51   return stream_->DisableBuffering();
     52 }
     53 
     54 CallSessionFileRotatingLogSink::CallSessionFileRotatingLogSink(
     55     const std::string& log_dir_path,
     56     size_t max_total_log_size)
     57     : FileRotatingLogSink(
     58           new CallSessionFileRotatingStream(log_dir_path, max_total_log_size)) {
     59 }
     60 
     61 CallSessionFileRotatingLogSink::~CallSessionFileRotatingLogSink() {
     62 }
     63 
     64 }  // namespace rtc
     65