28 Log(std::ostream &_ostream = std::cout,
int _verbosity = standard,
bool _show_clock =
false);
30 template<
int _required_verbosity = standard>
32 _add<_required_verbosity>(
"Calculate", what);
35 template<
int _required_verbosity = standard>
37 _add<_required_verbosity>(
"Construct", what);
40 template<
int _required_verbosity = standard>
42 _add<_required_verbosity>(
"Generate", what);
45 template<
int _required_verbosity = standard>
46 void set(
const std::string &what) {
47 _add<_required_verbosity>(
"Set", what);
50 template<
int _required_verbosity = standard>
51 void check(
const std::string &what) {
52 _add<_required_verbosity>(
"Check", what);
55 template<
int _required_verbosity = standard>
57 _add<_required_verbosity>(
"Results", what);
60 template<
int _required_verbosity = standard>
61 void read(
const std::string &what) {
62 _add<_required_verbosity>(
"Read", what);
65 template<
int _required_verbosity = standard>
66 void write(
const std::string &what) {
67 _add<_required_verbosity>(
"Write", what);
70 template<
int _required_verbosity = standard>
71 void begin(
const std::string &what) {
72 _add<_required_verbosity>(
"Begin", what);
75 template<
int _required_verbosity = standard>
76 void end(
const std::string &what) {
77 _add<_required_verbosity>(
"End", what);
80 template<
int _required_verbosity = standard>
82 _add<_required_verbosity>(
"Warning", what);
85 template<
int _required_verbosity = standard>
86 void error(
const std::string &what) {
87 _add<_required_verbosity>(
"Error", what);
90 template<
int _required_verbosity = standard>
92 _add<_required_verbosity>(
"Compiling", what);
95 template<
int _required_verbosity = standard>
96 void custom(
const std::string &what) {
97 static_assert(_required_verbosity >= none && _required_verbosity <= debug,
"CASM::Log _required_verbosity must be <= 100");
100 *
m_stream <<
"-- " << what <<
" -- ";
106 template<
int _required_verbosity = standard>
107 void custom(
const std::string &type,
const std::string &what) {
108 _add<_required_verbosity>(type, what);
130 template<
int _required_verbosity>
132 static_assert(_required_verbosity >= none && _required_verbosity <= debug,
"CASM::Log _required_verbosity must be <= 100");
138 void reset(std::ostream &_ostream = std::cout,
int _verbosity = standard,
bool _show_clock =
false);
146 operator std::ostream &();
148 explicit operator bool () {
158 template<
int _required_verbosity = standard>
159 void _add(
const std::string &type,
const std::string &what) {
160 static_assert(_required_verbosity >= none && _required_verbosity <= debug,
"CASM::Log _required_verbosity must be <= 100");
163 *
m_stream <<
"-- " << type <<
": " << what <<
" -- ";
193 static_cast<std::ostream &
>(
log) << msg_details;
198 Log &
operator<<(Log &log, std::ostream & (*fptr)(std::ostream &));
207 static Log log(std::cerr);
212 static std::ostream nullout(
nullptr);
230 Log(
m_ss, _verbosity, _show_clock) {}
232 std::ostringstream &
ss() {
236 const std::ostringstream &
ss()
const {
242 std::ostringstream
m_ss;
Log(std::ostream &_ostream=std::cout, int _verbosity=standard, bool _show_clock=false)
Construct a Log.
void results(const std::string &what)
void write(const std::string &what)
boost::chrono::steady_clock::time_point m_start_time
boost::chrono::steady_clock::time_point m_lap_start_time
void custom(const std::string &type, const std::string &what)
void _add(const std::string &type, const std::string &what)
void read(const std::string &what)
void set(const std::string &what)
static std::pair< bool, int > verbosity_level(std::string s)
Read verbosity level from a string.
const std::ostringstream & ss() const
friend Log & operator<<(Log &log, const T &msg_details)
void begin(const std::string &what)
void construct(const std::string &what)
void custom(const std::string &what)
void generate(const std::string &what)
Logging(Log &log=default_log(), Log &debug_log=default_log(), Log &err_log=default_err_log())
std::ostream & operator<<(std::ostream &_stream, const FormattedPrintable &_formatted)
static const int standard
void calculate(const std::string &what)
void reset(std::ostream &_ostream=std::cout, int _verbosity=standard, bool _show_clock=false)
void compiling(const std::string &what)
std::ostringstream & ss()
void end(const std::string &what)
void set_verbosity(int _verbosity)
void warning(const std::string &what)
void error(const std::string &what)
bool m_print
Whether to print.
void check(const std::string &what)
OStringStreamLog(int _verbosity=standard, bool _show_clock=false)
Construct a StringStreamLog.
int m_verbosity
If m_verbosity >= required verbosity, then print.