24#if LOCALZONE_IS_TIMEZONE
36 std::begin(fallbackPaths);
37 { *std::begin(fallbackPaths) }-> std::convertible_to<std::string>;
38 std::end(fallbackPaths);
42 for (
auto &i: fallbackPaths)
44 const std::string _path = i;
48 m_PathFmts.emplace_back(std::filesystem::absolute(_path).
string());
50 m_FileSizeLimit = fsize_in_bytes;
58 std::ostream *
snap()
override;
65 std::string m_CurrPath;
66 std::vector<std::string> m_PathFmts;
67 uintmax_t m_FileSizeLimit{};
68 size_t m_CurPathFmt{};
69 std::chrono::sys_seconds m_OldTime;
70 std::ios_base::openmode m_OpenMode{std::ios_base::out};
71 bool m_AutoMkDir{
true};
#define RUNTIME_ERROR(fmtStr,...)
Wrap FILE(DATE)#__LINE__ FUNCTION: msg into std::runtime_error.
C_PathFmtLogSnap & enableAutoMkDir(bool yes=true)
C_PathFmtLogSnap(bool use_local_time)
std::ostream * snap() override
Snap the current T value.
C_PathFmtLogSnap & configPath(uintmax_t fsize_in_bytes, const auto &fallbackPaths)
C_PathFmtLogSnap(T_LocalZone tz=local_zone())
C_PathFmtLogSnap & setBinaryMode(bool enabled)
C_PathFmtLogSnap & configPath(const std::string &pathFmt)
THE common namespace of bux library.
const std::chrono::time_zone * T_LocalZone