PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
io.cpp
Go to the documentation of this file.
1/*
2 * -------------------------------------------
3 * Copyright (c) 2021 - 2026 Prashant K. Jha
4 * -------------------------------------------
5 * PeriDEM https://github.com/prashjha/PeriDEM
6 *
7 * Distributed under the Boost Software License, Version 1.0. (See accompanying
8 * file LICENSE)
9 */
10
11#include "io.h"
12#include <cassert>
13
14namespace {
16}
17
18void util::io::initLogger(int debug_level, std::string filename) {
19
20 if (logger_p != nullptr)
21 return;
22
23 auto deck = new LoggerDeck(debug_level, filename);
24 logger_p = new Logger(deck);
25}
26
27void util::io::log(const std::string & str, bool screen_out, int printMpiRank) {
28
29 // The logger is created if it does not exist rather than asserting.
30 /*
31 //assert((logger_p != nullptr) && "logger_p "
32 // "(pointer of type util::io::Logger) is not initialized. "
33 // "Call util::io::initLogger(debug_level, log_filename) once at the beginning.");
34 */
35 if (logger_p == nullptr)
36 logger_p = new Logger();
37
38 logger_p->log(str, screen_out, printMpiRank);
39}
40
41void util::io::log(std::ostringstream &oss, bool screen_out, int printMpiRank) {
42
43 // The logger is created if it does not exist rather than asserting.
44 /*
45 //assert((logger_p != nullptr) && "logger_p "
46 // "(pointer of type util::io::Logger) is not initialized. "
47 // "Call util::io::initLogger(debug_level, log_filename) once at the beginning.");
48 */
49 if (logger_p == nullptr)
50 logger_p = new Logger();
51
52 logger_p->log(oss, screen_out, printMpiRank);
53}
54
55bool util::io::logEnabled(int priority, bool check_condition,
56 int override_priority) {
57 int dbg = 0;
58 if (logger_p != nullptr && logger_p->d_deck_p != nullptr)
60 int op = override_priority == -1 ? priority : override_priority;
61 return (check_condition && dbg > priority) || dbg > op;
62}
63
64void util::io::log(int priority, const std::string &str, bool check_condition,
65 int override_priority, bool screen_out) {
66 if (logEnabled(priority, check_condition, override_priority))
67 log(str, screen_out);
68}
69
70void util::io::log(int priority, std::ostringstream &oss, bool check_condition,
71 int override_priority, bool screen_out) {
72 if (logEnabled(priority, check_condition, override_priority))
73 log(oss, screen_out);
74 else {
75 oss.str("");
76 oss.clear();
77 }
78}
Prints log to std::cout and also write to the file.
Definition logger.h:23
void log(std::ostringstream &oss, bool screen_out=false, int printMpiRank=print_default_mpi_rank)
Log the message.
Definition logger.h:50
LoggerDeck * d_deck_p
Pointer to logger deck.
Definition logger.h:82
util::io::Logger * logger_p
Definition io.cpp:15
bool logEnabled(int priority, bool check_condition=true, int override_priority=-1)
True if a message at this priority would be logged (uses LoggerDeck::d_debugLevel)
Definition io.cpp:55
void initLogger(int debug_level=logger_default_debug_lvl, std::string filename="")
Initializes the logger.
Definition io.cpp:18
void log(std::ostringstream &oss, bool screen_out=false, int printMpiRank=print_default_mpi_rank)
Global method to log the message.
Definition io.cpp:41
Deck to store log parameters.
Definition loggerDeck.h:22
int d_debugLevel
Debug level.
Definition loggerDeck.h:24