-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added filename and line number to logs #2637
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know... This might be adding a lot of usually not needed noise to messages. I feel like this should be an option.
source/common/logger/ur_logger.hpp
Outdated
|
||
#define URLOG_ALWAYS_IMPL(format, ...) \ | ||
{ ::logger::get_logger().always(format " <{}:{}>", __VA_ARGS__); } | ||
#define URLOG_ALWAYS(...) URLOG_ALWAYS_IMPL(__VA_ARGS__, SHORT_FILE, __LINE__) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why a macro and not a function?
nvm, I didn't look at the code. We'd need __LINE__
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has to be a macro because we need __LINE__
and __FILE__
from the place of log statement, not from the place of of function definition.
My opinion is that filename and line number is crucial for efficient log analysis, unless you work for a long time in a project and perfectly know the code. When I realized UR don't have it I feel it is a must - hence the PR. Still when writing a log statement one can write it in old way and in this case log statement will appear without line and number. |
Many of the logs, especially error/warning ones, aren't meant for developers, but for users. Anyway, I'm not opposed, but I think this should be an option. |
source/common/logger/ur_logger.hpp
Outdated
|
||
#define URLOG_IMPL(level, format, ...) \ | ||
{ \ | ||
::logger::get_logger().log(logger::Level::level, format " <{}:{}>", \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of appending the extra information in the macro, instead you might be able to pass it as extra arguments to the log method, and print it out conditionally inside of it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
applied
@lslusarczyk I think some of the SYCL tests might rely on those log messages being in a specific format. I think you should either make this an option (like Piotr said) or run the tests and see if there are no failures. |
@igchor , @pbalcer I've applied this suggestion. Now behavior does not change unless one will specify "fileline:1" when configuring logs via environment variable. |
Added an option to print line number and filename in log file. When
fileline:1
is specified in an environment variable describing log, e.g:then instead of seeing logs like this
one will see log like this:
Review seems to be big but in fact is much shorter. The only essential change are some changes in
The rest was automated change of log statements from
logger::xxx(...)
toURLOG(XXX, ...)