Flow123d
release_3.0.0-968-gc87a28e79
|
Go to the documentation of this file.
30 if( a.size() > b.size() )
std::swap(a,b) ;
31 return std::string( a.begin(), std::mismatch( a.begin(), a.end(), b.begin() ).first ) ;
66 : type_(type), every_process_(false), line_(0)
89 "Wrn",
"Msg",
"Log",
"Dbg",
"Err"};
90 int type_idx = msg_type;
93 return type_names[type_idx];
95 return type_names[type_idx + 5];
124 case MsgType::warning:
131 case MsgType::message:
145 #ifdef FLOW123D_DEBUG
172 stream << setfill(
' ');
180 std::istringstream istream(scr_stream.str());
181 while(std::getline(istream, segment)) {
185 stream << std::setw(18) <<
"";
187 stream << segment <<
"\n";
190 stream << std::flush;
198 stream << setfill(
' ');
206 std::istringstream istream(file_stream.str());
207 while(std::getline(istream, segment)) {
208 segments.push_back(segment);
210 if (segments.size() > 1) {
211 stream <<
" - |" <<
"\n";
212 for (
auto seg : segments)
213 stream << std::setw(4) <<
"" << seg <<
"\n";
214 }
else if (segments.size() == 1) {
215 stream <<
" - " << segments[0] <<
"\n";
218 stream << std::flush;
226 #ifdef FLOW123D_SOURCE_DIR
227 string common_path =
cmn_prefix(
string(FLOW123D_SOURCE_DIR), file_name);
228 file_name.erase (0, common_path.size());
239 stream << setiosflags(ios::left) << std::setw(5) << rank.str();
241 stream << std::setw(5) <<
"";
244 if (
type_ != MsgType::message) {
246 if (
type_ == MsgType::debug) {
259 stream <<
"- -" << std::setw(13) <<
"" <<
"[ ";
264 else stream <<
"null";
StreamMask streams_mask_
Mask of logger, specifies streams in actual time into which to be written.
static StreamMask cerr
Predefined mask of std::cerr output.
static const std::string msg_type_string(MsgType msg_type, bool full_format=true)
Return string value of given MsgType in full or shorter format (e.g. "WARNING" of "Wrn")
Helper class, store mask specifying streams.
static StreamMask log
Predefined mask of log file output.
bool every_process_
Flag marked if log message is printing for all processes or only for zero process.
void swap(nlohmann::json &j1, nlohmann::json &j2) noexcept(is_nothrow_move_constructible< nlohmann::json >::value and is_nothrow_move_assignable< nlohmann::json >::value)
exchanges the values of two JSON objects
std::stringstream cerr_stream_
Store messages printed to cerr output stream.
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library.
std::stringstream file_stream_
Store messages printed to file.
void print_to_screen(std::ostream &stream, std::stringstream &scr_stream, StreamMask mask)
Print formated message to given screen stream if mask corresponds with streams_mask_.
std::string file_name_
Actual file.
StreamMask operator&(const StreamMask &other)
Logger & every_proc()
Set flag every_process_ to true.
StreamMask full_streams_mask_
Mask of logger, specifies all streams into which to be written in logger message.
Logger(MsgType type)
Constructor.
std::string compact_file_name(std::string file_name)
Return compact (relative) path to the given source file.
static LoggerOptions & get_instance()
Getter of singleton instance object.
int get_mpi_rank()
Returns number of actual process, if MPI is not supported returns -1.
std::string date_time_
Actual date and time.
void set_mask()
Set streams_mask_ according to the type of message.
std::string cmn_prefix(std::string a, std::string b)
Helper function, use for shorten the code point path.
MsgType type_
Type of message.
void print_to_file(std::ofstream &stream, std::stringstream &file_stream, StreamMask mask)
Print formated message to given file stream if mask corresponds with streams_mask_.
Logger & set_context(const char *file_name, const char *function, const int line)
Stores values for printing out line number, function, etc.
MsgType
Enum of types of Logger messages.
static StreamMask cout
Predefined mask of std::cout output.
std::stringstream cout_stream_
Store messages printed to cout output stream.
Logger & operator<<(Logger &log, StreamMask mask)
StreamMask operator|(const StreamMask &other)
Global macros to enhance readability and debugging, general constants.
StreamMask()
Empty constructor.
std::string function_
Actual function.
bool print_screen_header(std::ostream &stream, std::stringstream &scr_stream)
Print header to screen stream, helper method called from print_to_screen.
int mpi_rank_
Actual process (if MPI is supported)
Class for storing logger messages.
void print_file_header(std::ofstream &stream, std::stringstream &file_stream)
Print header to file stream, helper method called from print_to_file.
static std::string format_hh_mm_ss()