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_; }
116 using Field::lastName;
117 using Field::lastNameW;
126 return this->Field::child(
static_cast<SharedString &
>(field));
133 return child(std::move(field));
167 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
168 std::
nullptr_t> =
nullptr>
171 [callback = std::move(callback)](
const auto &) { callback(); });
179 const Log &request()
const;
184 std::optional<std::vector<LogLine>> tryGet()
const;
189 std::optional<std::vector<LogLineW>> tryGetW()
const;
194 std::vector<LogLine>
get()
const {
195 return tryGet().value_or(std::vector<LogLine>{});
201 std::vector<LogLineW>
getW()
const {
202 return tryGetW().value_or(std::vector<LogLineW>{});
220 const Log &clear()
const;
236 return append({
static_cast<int>(
level),
237 std::chrono::system_clock::now(),
241 return append({
level, std::chrono::system_clock::now(),
254 std::chrono::system_clock::time_point time,
256 return append({
static_cast<int>(
level), time,
268 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, Log>,
269 std::
nullptr_t> =
nullptr>
271 return static_cast<Field>(*this) ==
static_cast<Field>(other);
273 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, Log>,
274 std::
nullptr_t> =
nullptr>
276 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:106
const Log & append(LogLevel level, StringInitializer message) const
ログを1行追加
Definition log.h:235
Log operator[](StringInitializer field) const
Definition log.h:132
Log(const Field &base, const SharedString &field)
Definition log.h:113
bool operator==(const T &other) const
Logの参照先を比較
Definition log.h:270
Log parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition log.h:139
Log child(StringInitializer field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition log.h:125
const Log & append(int level, StringInitializer message) const
Definition log.h:240
const Log & append(LogLevel level, std::chrono::system_clock::time_point time, StringInitializer message) const
ログを1行追加
Definition log.h:253
const Log & append(int level, std::chrono::system_clock::time_point time, StringInitializer message) const
Definition log.h:259
bool operator!=(const T &other) const
Definition log.h:275
std::vector< LogLine > get() const
ログを取得する
Definition log.h:194
std::vector< LogLineW > getW() const
ログを取得する (wstring)
Definition log.h:201
const Log & onChange(F callback) const
値が変化したときに呼び出されるコールバックを設定
Definition log.h:169
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:170
SharedString のpublicなコンストラクタインタフェース (入力専用)
Definition encoding.h:235
webcfaceで管理されている文字列を参照するstring_view
Definition encoding.h:71
std::ostream & operator<<(std::ostream &os, const Arg &arg)
Definition func_info.cc:99
LogLevel
ログレベルを表すenum
Definition log.h:29
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:68
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