Skip to content

Commit 8db0b56

Browse files
author
Hugh Delaney
committed
Merge remote-tracking branch 'Fraser/default-log-level' into readytomerge-branch
2 parents 2c1180f + 57945c5 commit 8db0b56

File tree

4 files changed

+40
-18
lines changed

4 files changed

+40
-18
lines changed

source/adapters/cuda/adapter.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ class ur_legacy_sink : public logger::Sink {
3636

3737
~ur_legacy_sink() = default;
3838
};
39+
40+
// FIXME: Remove the default log level when querying logging info is supported
41+
// through UR entry points. See #1330.
3942
ur_adapter_handle_t_::ur_adapter_handle_t_()
40-
: logger(logger::get_logger("cuda")) {
43+
: logger(logger::get_logger("cuda",
44+
/*default_log_level*/ logger::Level::ERR)) {
4145

4246
if (std::getenv("UR_LOG_CUDA") != nullptr)
4347
return;

source/adapters/hip/adapter.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,11 @@ class ur_legacy_sink : public logger::Sink {
3636
~ur_legacy_sink() = default;
3737
};
3838

39+
// FIXME: Remove the default log level when querying logging info is supported
40+
// through UR entry points. See #1330.
3941
ur_adapter_handle_t_::ur_adapter_handle_t_()
40-
: logger(logger::get_logger("hip")) {
42+
: logger(
43+
logger::get_logger("hip", /*default_log_level*/ logger::Level::ERR)) {
4144

4245
if (std::getenv("UR_LOG_HIP") != nullptr)
4346
return;

source/common/logger/ur_level.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ inline constexpr auto level_to_str(Level level) {
2323
return "WARNING";
2424
case Level::ERR:
2525
return "ERROR";
26+
case Level::QUIET:
27+
return "QUIET";
2628
default:
2729
return "";
2830
}
@@ -37,7 +39,8 @@ inline auto str_to_level(std::string name) {
3739
const lvl_name lvl_names[] = {{"debug", Level::DEBUG},
3840
{"info", Level::INFO},
3941
{"warning", Level::WARN},
40-
{"error", Level::ERR}};
42+
{"error", Level::ERR},
43+
{"quiet", Level::QUIET}};
4144

4245
for (auto const &item : lvl_names) {
4346
if (item.name.compare(name) == 0) {
@@ -47,8 +50,8 @@ inline auto str_to_level(std::string name) {
4750
throw std::invalid_argument(
4851
std::string("Parsing error: no valid log level for string '") + name +
4952
std::string("'.") +
50-
std::string(
51-
"\nValid log level names are: debug, info, warning and error"));
53+
std::string("\nValid log level names are: debug, info, warning, error, "
54+
"and quiet"));
5255
}
5356

5457
} // namespace logger

source/common/logger/ur_logger.hpp

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@
1515
namespace logger {
1616

1717
Logger create_logger(std::string logger_name, bool skip_prefix = false,
18-
bool skip_linebreak = false);
19-
20-
inline Logger &get_logger(const char *name = "common") {
21-
static Logger logger = create_logger(name);
18+
bool skip_linebreak = false,
19+
logger::Level default_log_level = logger::Level::QUIET);
20+
21+
inline Logger &
22+
get_logger(std::string name = "common",
23+
logger::Level default_log_level = logger::Level::QUIET) {
24+
static Logger logger =
25+
create_logger(std::move(name), /*skip_prefix*/ false,
26+
/*slip_linebreak*/ false, default_log_level);
2227
return logger;
2328
}
2429

@@ -99,6 +104,8 @@ template <typename T> inline std::string toHex(T t) {
99104
/// UR_LOG_LOADER="level:info;flush:warning;output:file,out.log"
100105
/// @param logger_name name that should be appended to the `UR_LOG_` prefix to
101106
/// get the proper environment variable, ie. "loader"
107+
/// @param default_log_level provides the default logging configuration when the environment
108+
/// variable is not provided or cannot be parsed
102109
/// @return an instance of a logger::Logger. In case of failure in the parsing of
103110
/// the environment variable, returns a default logger with the following
104111
/// options:
@@ -107,23 +114,25 @@ template <typename T> inline std::string toHex(T t) {
107114
/// to be printed immediately as they occur
108115
/// - output: stderr
109116
inline Logger create_logger(std::string logger_name, bool skip_prefix,
110-
bool skip_linebreak) {
117+
bool skip_linebreak,
118+
logger::Level default_log_level) {
111119
std::transform(logger_name.begin(), logger_name.end(), logger_name.begin(),
112120
::toupper);
113121
std::stringstream env_var_name;
114-
const auto default_level = logger::Level::QUIET;
115122
const auto default_flush_level = logger::Level::ERR;
116123
const std::string default_output = "stderr";
117-
auto level = default_level;
124+
auto level = default_log_level;
118125
auto flush_level = default_flush_level;
119126
std::unique_ptr<logger::Sink> sink;
120127

121128
env_var_name << "UR_LOG_" << logger_name;
122129
try {
123130
auto map = getenv_to_map(env_var_name.str().c_str());
124131
if (!map.has_value()) {
125-
return Logger(std::make_unique<logger::StderrSink>(
126-
std::move(logger_name), skip_prefix, skip_linebreak));
132+
return Logger(
133+
default_log_level,
134+
std::make_unique<logger::StderrSink>(
135+
std::move(logger_name), skip_prefix, skip_linebreak));
127136
}
128137

129138
auto kv = map->find("level");
@@ -151,8 +160,10 @@ inline Logger create_logger(std::string logger_name, bool skip_prefix,
151160
std::cerr << "Wrong logger environment variable parameter: '"
152161
<< map->begin()->first
153162
<< "'. Default logger options are set.";
154-
return Logger(std::make_unique<logger::StderrSink>(
155-
std::move(logger_name), skip_prefix, skip_linebreak));
163+
return Logger(
164+
default_log_level,
165+
std::make_unique<logger::StderrSink>(
166+
std::move(logger_name), skip_prefix, skip_linebreak));
156167
}
157168

158169
sink = values.size() == 2
@@ -164,8 +175,9 @@ inline Logger create_logger(std::string logger_name, bool skip_prefix,
164175
std::cerr << "Error when creating a logger instance from the '"
165176
<< env_var_name.str() << "' environment variable:\n"
166177
<< e.what() << std::endl;
167-
return Logger(std::make_unique<logger::StderrSink>(
168-
std::move(logger_name), skip_prefix, skip_linebreak));
178+
return Logger(default_log_level,
179+
std::make_unique<logger::StderrSink>(
180+
std::move(logger_name), skip_prefix, skip_linebreak));
169181
}
170182
sink->setFlushLevel(flush_level);
171183

0 commit comments

Comments
 (0)