Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit 49d511c

Browse files
authored
Add support of rotating log to file with specified prefix. (#202)
1 parent d0f5ba8 commit 49d511c

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

rtc_base/file_rotating_stream.cc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,19 @@ CallSessionFileRotatingStream::CallSessionFileRotatingStream(
351351
RTC_DCHECK_GE(max_total_log_size, 4);
352352
}
353353

354+
CallSessionFileRotatingStream::CallSessionFileRotatingStream(
355+
absl::string_view dir_path,
356+
absl::string_view log_file_prefix,
357+
size_t max_total_log_size)
358+
: FileRotatingStream(dir_path,
359+
log_file_prefix,
360+
max_total_log_size / 2,
361+
GetNumRotatingLogFiles(max_total_log_size) + 1),
362+
max_total_log_size_(max_total_log_size),
363+
num_rotations_(0) {
364+
RTC_DCHECK_GE(max_total_log_size, 4);
365+
}
366+
354367
const size_t CallSessionFileRotatingStream::kRotatingLogFileDefaultSize =
355368
1024 * 1024;
356369

@@ -425,4 +438,9 @@ CallSessionFileRotatingStreamReader::CallSessionFileRotatingStreamReader(
425438
absl::string_view dir_path)
426439
: FileRotatingStreamReader(dir_path, kCallSessionLogPrefix) {}
427440

441+
CallSessionFileRotatingStreamReader::CallSessionFileRotatingStreamReader(
442+
absl::string_view dir_path,
443+
absl::string_view log_file_prefix)
444+
: FileRotatingStreamReader(dir_path, log_file_prefix) {}
445+
428446
} // namespace rtc

rtc_base/file_rotating_stream.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,14 @@ class CallSessionFileRotatingStream : public FileRotatingStream {
129129
// must be at least 4.
130130
CallSessionFileRotatingStream(absl::string_view dir_path,
131131
size_t max_total_log_size);
132+
133+
// Use this constructor for writing to a directory. Files in the directory
134+
// matching what's used by the stream will be deleted. 'max_totla_log_size'
135+
// must be at least 4. file name will be prefixed with 'log_file_prefix'.
136+
CallSessionFileRotatingStream(absl::string_view dir_path,
137+
absl::string_view log_file_prefix,
138+
size_t max_total_log_size);
139+
132140
~CallSessionFileRotatingStream() override {}
133141

134142
CallSessionFileRotatingStream(const CallSessionFileRotatingStream&) = delete;
@@ -166,6 +174,8 @@ class FileRotatingStreamReader {
166174
class CallSessionFileRotatingStreamReader : public FileRotatingStreamReader {
167175
public:
168176
CallSessionFileRotatingStreamReader(absl::string_view dir_path);
177+
178+
CallSessionFileRotatingStreamReader(absl::string_view dir_path, absl::string_view long_file_prefix);
169179
};
170180

171181
} // namespace rtc

rtc_base/log_sinks.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ CallSessionFileRotatingLogSink::CallSessionFileRotatingLogSink(
8181
new CallSessionFileRotatingStream(log_dir_path, max_total_log_size)) {
8282
}
8383

84+
CallSessionFileRotatingLogSink::CallSessionFileRotatingLogSink(
85+
absl::string_view log_dir_path,
86+
absl::string_view log_file_prefix,
87+
size_t max_total_log_size)
88+
: FileRotatingLogSink(
89+
new CallSessionFileRotatingStream(log_dir_path, log_file_prefix, max_total_log_size)) {
90+
}
91+
92+
8493
CallSessionFileRotatingLogSink::~CallSessionFileRotatingLogSink() {}
8594

8695
} // namespace rtc

rtc_base/log_sinks.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ class CallSessionFileRotatingLogSink : public FileRotatingLogSink {
6767
public:
6868
CallSessionFileRotatingLogSink(absl::string_view log_dir_path,
6969
size_t max_total_log_size);
70+
CallSessionFileRotatingLogSink(absl::string_view log_dir_path,
71+
absl::string_view log_file_prefix,
72+
size_t max_total_log_size);
7073
~CallSessionFileRotatingLogSink() override;
7174

7275
CallSessionFileRotatingLogSink(const CallSessionFileRotatingLogSink&) =

0 commit comments

Comments
 (0)