| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright 2015 The WebRTC Project Authors. All rights reserved. |   2  *  Copyright 2015 The WebRTC Project Authors. All rights reserved. | 
|   3  * |   3  * | 
|   4  *  Use of this source code is governed by a BSD-style license |   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 |   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 |   6  *  tree. An additional intellectual property rights grant can be found | 
|   7  *  in the file PATENTS.  All contributing project authors may |   7  *  in the file PATENTS.  All contributing project authors may | 
|   8  *  be found in the AUTHORS file in the root of the source tree. |   8  *  be found in the AUTHORS file in the root of the source tree. | 
|   9  */ |   9  */ | 
|  10  |  10  | 
|  11 #ifndef WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ |  11 #ifndef WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ | 
|  12 #define WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ |  12 #define WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ | 
|  13  |  13  | 
 |  14 #include <memory> | 
|  14 #include <string> |  15 #include <string> | 
|  15  |  16  | 
|  16 #include "webrtc/base/constructormagic.h" |  17 #include "webrtc/base/constructormagic.h" | 
|  17 #include "webrtc/base/filerotatingstream.h" |  18 #include "webrtc/base/filerotatingstream.h" | 
|  18 #include "webrtc/base/logging.h" |  19 #include "webrtc/base/logging.h" | 
|  19 #include "webrtc/base/scoped_ptr.h" |  | 
|  20  |  20  | 
|  21 namespace rtc { |  21 namespace rtc { | 
|  22  |  22  | 
|  23 // Log sink that uses a FileRotatingStream to write to disk. |  23 // Log sink that uses a FileRotatingStream to write to disk. | 
|  24 // Init() must be called before adding this sink. |  24 // Init() must be called before adding this sink. | 
|  25 class FileRotatingLogSink : public LogSink { |  25 class FileRotatingLogSink : public LogSink { | 
|  26  public: |  26  public: | 
|  27   // |num_log_files| must be greater than 1 and |max_log_size| must be greater |  27   // |num_log_files| must be greater than 1 and |max_log_size| must be greater | 
|  28   // than 0. |  28   // than 0. | 
|  29   FileRotatingLogSink(const std::string& log_dir_path, |  29   FileRotatingLogSink(const std::string& log_dir_path, | 
|  30                       const std::string& log_prefix, |  30                       const std::string& log_prefix, | 
|  31                       size_t max_log_size, |  31                       size_t max_log_size, | 
|  32                       size_t num_log_files); |  32                       size_t num_log_files); | 
|  33   ~FileRotatingLogSink() override; |  33   ~FileRotatingLogSink() override; | 
|  34  |  34  | 
|  35   // Writes the message to the current file. It will spill over to the next |  35   // Writes the message to the current file. It will spill over to the next | 
|  36   // file if needed. |  36   // file if needed. | 
|  37   void OnLogMessage(const std::string& message) override; |  37   void OnLogMessage(const std::string& message) override; | 
|  38  |  38  | 
|  39   // Deletes any existing files in the directory and creates a new log file. |  39   // Deletes any existing files in the directory and creates a new log file. | 
|  40   virtual bool Init(); |  40   virtual bool Init(); | 
|  41  |  41  | 
|  42   // Disables buffering on the underlying stream. |  42   // Disables buffering on the underlying stream. | 
|  43   bool DisableBuffering(); |  43   bool DisableBuffering(); | 
|  44  |  44  | 
|  45  protected: |  45  protected: | 
|  46   explicit FileRotatingLogSink(FileRotatingStream* stream); |  46   explicit FileRotatingLogSink(FileRotatingStream* stream); | 
|  47  |  47  | 
|  48  private: |  48  private: | 
|  49   scoped_ptr<FileRotatingStream> stream_; |  49   std::unique_ptr<FileRotatingStream> stream_; | 
|  50  |  50  | 
|  51   RTC_DISALLOW_COPY_AND_ASSIGN(FileRotatingLogSink); |  51   RTC_DISALLOW_COPY_AND_ASSIGN(FileRotatingLogSink); | 
|  52 }; |  52 }; | 
|  53  |  53  | 
|  54 // Log sink that uses a CallSessionFileRotatingStream to write to disk. |  54 // Log sink that uses a CallSessionFileRotatingStream to write to disk. | 
|  55 // Init() must be called before adding this sink. |  55 // Init() must be called before adding this sink. | 
|  56 class CallSessionFileRotatingLogSink : public FileRotatingLogSink { |  56 class CallSessionFileRotatingLogSink : public FileRotatingLogSink { | 
|  57  public: |  57  public: | 
|  58   CallSessionFileRotatingLogSink(const std::string& log_dir_path, |  58   CallSessionFileRotatingLogSink(const std::string& log_dir_path, | 
|  59                                  size_t max_total_log_size); |  59                                  size_t max_total_log_size); | 
|  60   ~CallSessionFileRotatingLogSink() override; |  60   ~CallSessionFileRotatingLogSink() override; | 
|  61  |  61  | 
|  62  private: |  62  private: | 
|  63   RTC_DISALLOW_COPY_AND_ASSIGN(CallSessionFileRotatingLogSink); |  63   RTC_DISALLOW_COPY_AND_ASSIGN(CallSessionFileRotatingLogSink); | 
|  64 }; |  64 }; | 
|  65  |  65  | 
|  66 }  // namespace rtc |  66 }  // namespace rtc | 
|  67  |  67  | 
|  68 #endif  // WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ |  68 #endif  // WEBRTC_BASE_FILE_ROTATING_LOG_SINK_H_ | 
| OLD | NEW |