Skip to content

Commit

Permalink
Rename Provenance to LogProvenance
Browse files Browse the repository at this point in the history
  • Loading branch information
sethrj committed Feb 3, 2024
1 parent fef9af5 commit d64086d
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 30 deletions.
2 changes: 1 addition & 1 deletion app/celer-g4/LocalLogger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ namespace app
/*!
* Write a log message.
*/
void LocalLogger::operator()(Provenance prov, LogLevel lev, std::string msg)
void LocalLogger::operator()(LogProvenance prov, LogLevel lev, std::string msg)
{
// Write preamble to a buffer first
std::ostringstream os;
Expand Down
2 changes: 1 addition & 1 deletion app/celer-g4/LocalLogger.hh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class LocalLogger
}

// Write a log message
void operator()(Provenance prov, LogLevel lev, std::string msg);
void operator()(LogProvenance prov, LogLevel lev, std::string msg);

private:
int num_threads_;
Expand Down
4 changes: 2 additions & 2 deletions src/accel/Logger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class MtLogger
{
public:
explicit MtLogger(int num_threads);
void operator()(Provenance prov, LogLevel lev, std::string msg);
void operator()(LogProvenance prov, LogLevel lev, std::string msg);

private:
int num_threads_;
Expand All @@ -48,7 +48,7 @@ MtLogger::MtLogger(int num_threads) : num_threads_(num_threads)
}

//---------------------------------------------------------------------------//
void MtLogger::operator()(Provenance prov, LogLevel lev, std::string msg)
void MtLogger::operator()(LogProvenance prov, LogLevel lev, std::string msg)
{
auto& cerr = G4cerr;

Expand Down
4 changes: 2 additions & 2 deletions src/corecel/io/Logger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ namespace
// HELPER CLASSES
//---------------------------------------------------------------------------//
//! Default global logger prints the error message with basic colors
void default_global_handler(Provenance prov, LogLevel lev, std::string msg)
void default_global_handler(LogProvenance prov, LogLevel lev, std::string msg)
{
static std::mutex log_mutex;
std::lock_guard<std::mutex> scoped_lock{log_mutex};
Expand All @@ -57,7 +57,7 @@ class LocalHandler
public:
explicit LocalHandler(MpiCommunicator const& comm) : rank_(comm.rank()) {}

void operator()(Provenance prov, LogLevel lev, std::string msg)
void operator()(LogProvenance prov, LogLevel lev, std::string msg)
{
// Use buffered 'clog'
std::clog << color_code('x') << prov.file << ':' << prov.line
Expand Down
12 changes: 6 additions & 6 deletions src/corecel/io/Logger.hh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
// MACROS
//---------------------------------------------------------------------------//
//! Inject the source code provenance (current file and line)
#define CELER_CODE_PROVENANCE \
::celeritas::Provenance \
{ \
__FILE__, __LINE__ \
#define CELER_CODE_PROVENANCE \
::celeritas::LogProvenance \
{ \
__FILE__, __LINE__ \
}

/*!
Expand Down Expand Up @@ -90,7 +90,7 @@ class Logger
Logger(MpiCommunicator const& comm, LogHandler handle);

// Create a logger that flushes its contents when it destructs
inline Message operator()(Provenance&& prov, LogLevel lev);
inline Message operator()(LogProvenance&& prov, LogLevel lev);

//! Set the minimum logging verbosity
void level(LogLevel lev) { min_level_ = lev; }
Expand All @@ -113,7 +113,7 @@ class Logger
* anyway), so we mark as \c CELER_UNLIKELY to optimize for the no-logging
* case.
*/
auto Logger::operator()(Provenance&& prov, LogLevel lev) -> Message
auto Logger::operator()(LogProvenance&& prov, LogLevel lev) -> Message
{
LogHandler* handle = nullptr;
if (CELER_UNLIKELY(handle_ && lev >= min_level_))
Expand Down
7 changes: 5 additions & 2 deletions src/corecel/io/LoggerTypes.hh
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,17 @@ char const* to_color_code(LogLevel);

//---------------------------------------------------------------------------//
//! Stand-in for a more complex class for the "provenance" of data
struct Provenance
struct LogProvenance
{
std::string_view file; //!< Originating file
int line{0}; //!< Line number
};

//! Type for handling a log message
using LogHandler = std::function<void(Provenance, LogLevel, std::string)>;
using LogHandler = std::function<void(LogProvenance, LogLevel, std::string)>;

// DEPRECATED: remove in v0.6
using Provenance [[deprecated]] = LogProvenance;

//---------------------------------------------------------------------------//
} // namespace celeritas
2 changes: 1 addition & 1 deletion src/corecel/io/detail/LoggerMessage.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace detail
*
* This saves the provided data and allocates a stream for output.
*/
void LoggerMessage::construct_impl(Provenance&& prov, LogLevel lev)
void LoggerMessage::construct_impl(LogProvenance&& prov, LogLevel lev)
{
CELER_EXPECT(handle_ && *handle_);

Expand Down
8 changes: 4 additions & 4 deletions src/corecel/io/detail/LoggerMessage.hh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class LoggerMessage

public:
// Construct with reference to function object, etc.
inline LoggerMessage(LogHandler* handle, Provenance&& prov, LogLevel lev);
inline LoggerMessage(LogHandler* handle, LogProvenance&& prov, LogLevel lev);

// Flush message on destruction
inline ~LoggerMessage();
Expand All @@ -61,12 +61,12 @@ class LoggerMessage

private:
LogHandler* handle_;
Provenance prov_;
LogProvenance prov_;
LogLevel lev_;
std::unique_ptr<std::ostringstream> os_;

// Create the message when handle is non-null
void construct_impl(Provenance&& prov, LogLevel lev);
void construct_impl(LogProvenance&& prov, LogLevel lev);

// Flush the message during destruction
void destroy_impl() noexcept;
Expand All @@ -80,7 +80,7 @@ class LoggerMessage
* not be displayed.
*/
CELER_FORCEINLINE LoggerMessage::LoggerMessage(LogHandler* handle,
Provenance&& prov,
LogProvenance&& prov,
LogLevel lev)
: handle_(handle)
{
Expand Down
2 changes: 1 addition & 1 deletion test/corecel/ScopedLogStorer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ ScopedLogStorer::~ScopedLogStorer()

//---------------------------------------------------------------------------//
//! Save a log message
void ScopedLogStorer::operator()(Provenance, LogLevel lev, std::string msg)
void ScopedLogStorer::operator()(LogProvenance, LogLevel lev, std::string msg)
{
static std::regex const delete_ansi("\033\\[[0-9;]*m");
static std::regex const subs_ptr("0x[0-9a-f]+");
Expand Down
2 changes: 1 addition & 1 deletion test/corecel/ScopedLogStorer.hh
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class ScopedLogStorer
~ScopedLogStorer();

// Save a log message
void operator()(Provenance, LogLevel lev, std::string msg);
void operator()(LogProvenance, LogLevel lev, std::string msg);

//! Whether no messages were stored
bool empty() const { return messages_.empty(); }
Expand Down
21 changes: 12 additions & 9 deletions test/corecel/io/Logger.test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,16 @@ TEST_F(LoggerTest, null)

TEST_F(LoggerTest, custom_log)
{
Provenance last_prov;
LogProvenance last_prov;
LogLevel last_lev = LogLevel::debug;
std::string last_msg;

Logger log(comm_self, [&](Provenance prov, LogLevel lev, std::string msg) {
last_prov = prov;
last_lev = lev;
last_msg = std::move(msg);
});
Logger log(comm_self,
[&](LogProvenance prov, LogLevel lev, std::string msg) {
last_prov = prov;
last_lev = lev;
last_msg = std::move(msg);
});

// Update level
EXPECT_EQ(LogLevel::status, log.level());
Expand Down Expand Up @@ -131,9 +132,11 @@ TEST_F(LoggerTest, DISABLED_performance)
{
// Construct a logger with an expensive output routine that will never be
// called
Logger log(comm_self, [&](Provenance prov, LogLevel lev, std::string msg) {
cout << prov.file << prov.line << static_cast<int>(lev) << msg << endl;
});
Logger log(comm_self,
[&](LogProvenance prov, LogLevel lev, std::string msg) {
cout << prov.file << prov.line << static_cast<int>(lev)
<< msg << endl;
});
log.level(LogLevel::critical);

// Even in debug this takes only 26ms
Expand Down

0 comments on commit d64086d

Please sign in to comment.