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 method 'log' to MessageLoggers to handle complex messaging #23347
Conversation
The log method allows complex code which is only needed for logging to only be run if the logging level is appropriate. This is done by passing a lambda to the method where the lambda has the signature '(auto &)' and is passed an object which uses operator<<.
Now all the computation needed for the log message is only done if the log would be seen based on the logging level.
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-23347/4850 |
please test |
A new Pull Request was created by @Dr15Jones (Chris Jones) for master. It involves the following packages: FWCore/Integration @cmsbuild, @smuzaffar, @Dr15Jones can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
+1 |
The tests are being triggered in jenkins. |
This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
@Dr15Jones for my education, the difference in this method wrt to the old style << is essentially in its internal implementation, but not in the final result, am I correct? |
+1 |
@fabiocos both using |
The Log*::log method allows complex code which is only needed for logging to only be run if the logging level is appropriate. This is done by passing a lambda to the method where the lambda has the signature '(auto &)' and is passed an object which uses operator<<.
The for loop will only be run if the MessageLogger threshold is at least INFO.