12#include "webcface/common/webcface-config.h"
55 case LogLevel::critical:
56 return os <<
"critical";
58 return os << std::to_string(static_cast<int>(
level));
64 std::chrono::system_clock::time_point
time_;
79 std::chrono::system_clock::time_point
time()
const {
return time_; }
90 std::chrono::system_clock::time_point
time()
const {
return time_; }
142 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
143 std::
nullptr_t> =
nullptr>
146 [callback = std::move(callback)](
const auto &) { callback(); });
155 template <
typename T>
158 onChange(std::forward<T>(callback));
166 const Log &request()
const;
171 std::optional<std::vector<LogLine>> tryGet()
const;
176 std::optional<std::vector<LogLineW>> tryGetW()
const;
181 std::vector<LogLine>
get()
const {
182 return tryGet().value_or(std::vector<LogLine>{});
188 std::vector<LogLineW>
getW()
const {
189 return tryGetW().value_or(std::vector<LogLineW>{});
207 const Log &clear()
const;
223 return append({
static_cast<int>(
level),
224 std::chrono::system_clock::now(),
228 return append({
level, std::chrono::system_clock::now(),
241 std::chrono::system_clock::time_point time,
243 return append({
static_cast<int>(
level), time,
255 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, Log>,
256 std::
nullptr_t> =
nullptr>
258 return static_cast<Field>(*this) ==
static_cast<Field>(other);
260 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, Log>,
261 std::
nullptr_t> =
nullptr>
263 return static_cast<Field>(*this) !=
static_cast<Field>(other);
LogLevel level() const
Definition log.h:89
LogLineW(const LogLineData &ll)
Definition log.h:88
std::chrono::system_clock::time_point time() const
Definition log.h:90
WStringView message() const
Definition log.h:95
LogLevel level() const
Definition log.h:78
std::chrono::system_clock::time_point time() const
Definition log.h:79
LogLine(const LogLineData &ll)
Definition log.h:77
StringView message() const
Definition log.h:84
ログの送受信データを表すクラス
Definition log.h:105
const Log & append(LogLevel level, StringInitializer message) const
ログを1行追加
Definition log.h:222
Log(const Field &base, const SharedString &field)
Definition log.h:112
bool operator==(const T &other) const
Logの参照先を比較
Definition log.h:257
const Log & append(int level, StringInitializer message) const
Definition log.h:227
const Log & append(LogLevel level, std::chrono::system_clock::time_point time, StringInitializer message) const
ログを1行追加
Definition log.h:240
const Log & append(int level, std::chrono::system_clock::time_point time, StringInitializer message) const
Definition log.h:246
bool operator!=(const T &other) const
Definition log.h:262
void appendListener(T &&callback) const
Definition log.h:157
std::vector< LogLine > get() const
ログを取得する
Definition log.h:181
std::vector< LogLineW > getW() const
ログを取得する (wstring)
Definition log.h:188
const Log & onChange(F callback) const
値が変化したときに呼び出されるコールバックを設定
Definition log.h:144
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:159
SharedString のpublicなコンストラクタインタフェース (入力専用)
Definition encoding.h:215
webcfaceで管理されている文字列を参照するstring_view
Definition encoding.h:60
std::ostream & operator<<(std::ostream &os, const Arg &arg)
Definition func_info.cc:98
LogLevel
ログレベルを表すenum
Definition log.h:29
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:71
std::chrono::system_clock::time_point time_
Definition log.h:64
SharedString message_
Definition log.h:65
#define WEBCFACE_DLL
Definition webcface-config.h:69
#define WEBCFACE_CALL
Definition webcface-config.h:106
#define WEBCFACE_NS_END
Definition webcface-config.h:113
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:112
#define WEBCFACE_CALL_FP
Definition webcface-config.h:107