SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
logger.hpp
1//
2// logger.hpp
3// skyway
4//
5// Created by ossan20 on 2023/8/18.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8#ifndef SKYWAY_GLOBAL_LOGGER_HPP
9#define SKYWAY_GLOBAL_LOGGER_HPP
10
11#include <mutex>
12
13#include <rtc_base/logging.h>
14
15#include <skyway/global/interface/logger.hpp>
16
17namespace skyway {
18namespace global {
19
21class Logger : public interface::Logger, public rtc::LogSink {
22public:
27 class Listener {
28 public:
29 virtual ~Listener() = default;
34 virtual void OnLog(Level level, const std::string& text) = 0;
35 };
36
39 Logger(Level level = kInfo, bool enable_webrtc_log = false);
40 ~Logger();
41
44 void Log(Level level,
45 const std::string& message,
46 const std::string& filename = "",
47 const std::string& function = "",
48 int line = -1);
49
52 void Trace(const std::string& message,
53 const std::string& filename = __builtin_FILE(),
54 const std::string& function = __builtin_FUNCTION(),
55 int line = __builtin_LINE()) override;
58 void Debug(const std::string& message,
59 const std::string& filename = __builtin_FILE(),
60 const std::string& function = __builtin_FUNCTION(),
61 int line = __builtin_LINE()) override;
64 void Info(const std::string& message,
65 const std::string& filename = __builtin_FILE(),
66 const std::string& function = __builtin_FUNCTION(),
67 int line = __builtin_LINE()) override;
70 void Warn(const std::string& message,
71 const std::string& filename = __builtin_FILE(),
72 const std::string& function = __builtin_FUNCTION(),
73 int line = __builtin_LINE()) override;
76 void Error(const std::string& message,
77 const std::string& filename = __builtin_FILE(),
78 const std::string& function = __builtin_FUNCTION(),
79 int line = __builtin_LINE()) override;
80
83 void OnLogMessage(const std::string& message) override;
84
87 void OnLogMessage(const std::string& message, rtc::LoggingSeverity severity) override;
88
92 static void RegisterListener(const std::shared_ptr<Listener> listener);
93
95 static void UnregisterListener();
96
97private:
98 void SetLogLevel(Level level);
99 Level WebRTCSeverityToLogLevel(rtc::LoggingSeverity severity);
100 bool enable_webrtc_log_ = false;
101 Level level_ = kInfo;
102 inline static std::mutex listener_mtx_;
103 inline static std::shared_ptr<Listener> listener_ = nullptr;
104};
105
106} // namespace global
107} // namespace skyway
108
109#endif /* SKYWAY_GLOBAL_LOGGER_HPP */
Logger のリスナー
Definition logger.hpp:27
virtual void OnLog(Level level, const std::string &text)=0
SkyWayのログが出力されたときのイベント
SkyWayのログを出力するクラス
Definition logger.hpp:21
static void UnregisterListener()
登録済みのロガーのリスナーを消去します。
void Log(Level level, const std::string &message, const std::string &filename="", const std::string &function="", int line=-1)
ログを出力します。
Logger(Level level=kInfo, bool enable_webrtc_log=false)
内部向けコンストラクタ
void OnLogMessage(const std::string &message) override
WebRTCのログが出力されたときのイベント
void Warn(const std::string &message, const std::string &filename=__builtin_FILE(), const std::string &function=__builtin_FUNCTION(), int line=__builtin_LINE()) override
Warnレベルのログを出力します。
static void RegisterListener(const std::shared_ptr< Listener > listener)
ロガーのリスナーを登録します。
void Trace(const std::string &message, const std::string &filename=__builtin_FILE(), const std::string &function=__builtin_FUNCTION(), int line=__builtin_LINE()) override
Traceレベルのログを出力します。
void Info(const std::string &message, const std::string &filename=__builtin_FILE(), const std::string &function=__builtin_FUNCTION(), int line=__builtin_LINE()) override
Infoレベルのログを出力します。
void Debug(const std::string &message, const std::string &filename=__builtin_FILE(), const std::string &function=__builtin_FUNCTION(), int line=__builtin_LINE()) override
Debugレベルのログを出力します。
void OnLogMessage(const std::string &message, rtc::LoggingSeverity severity) override
WebRTCのログが出力されたときのイベント
void Error(const std::string &message, const std::string &filename=__builtin_FILE(), const std::string &function=__builtin_FUNCTION(), int line=__builtin_LINE()) override
Errorレベルのログを出力します。
SkyWayのログを処理するクラス
Definition logger.hpp:63
Level
ログレベル
Definition logger.hpp:66