-
Notifications
You must be signed in to change notification settings - Fork 357
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
Standardise logging: bin/all_sky_search and pycbc/events #4576
Standardise logging: bin/all_sky_search and pycbc/events #4576
Conversation
logging.info("A code-level logging info statement") | ||
logging.debug("A code-level logging debug statement") | ||
trigger_cut_dict, template_cut_dict = cuts.ingest_cuts_option_group(args) | ||
logging.getLogger('pycbc.events.cuts').setLevel(logging.INFO) |
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've added this as an example of its usage (in the "REVERT ME..." commit so it can be cut out easily again).
The output of which (when running with verbose logging in pycbc_coinc_findtrigs) is:
2023-12-01T07:15:59.620-08:00 INFO : A code-level logging info statement
2023-12-01T07:15:59.620-08:00 DEBUG : A code-level logging debug statement
2023-12-01T07:15:59.620-08:00 INFO : A module-level logging info statement
2023-12-01T07:15:59.621-08:00 DEBUG : A module-level logging debug statement
2023-12-01T07:15:59.621-08:00 INFO : A module-level logging info statement
2023-12-01T07:15:59.638-08:00 INFO : Analyzing template 0 - 1158
We see that the module-level debug statement is not given on the second pass, as the cuts logger has been reset to INFO level
Tagging @ahnitz @spxiwh @titodalcanton @cdcapano @tdent in case anyone has opinions on this before I start properly |
This will heavily affect some things in PyCBC Live, like the lag plotter. Need not forget this! |
That's exactly the situation I thought of with "where it is appropriate" - if I leave the |
As the verbose option was being set differently by different codes, I've also added a It's named purposely vaguely so that we can add e.g. the version information to this later. |
Poke on this |
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.
Looks good to me.
* add level to default logging * Decrease logging level for debug information in coinc_findtrigs * decrease logging level for some information in sngls_findtrigs * add named logger in pycbc/events/cuts.py * add named logger in pycbc/events/significance.py * REVERT ME: an example of usage * CC fix * Revert "REVERT ME: an example of usage" This reverts commit eb647e0. * Use init_logging throughout all_sky_search * give pycbc/events modules named loggers * missed the fact that the level was set to warn, not info, as default before * CC * missed an import * start moving verbose argparse into common facility * add common_options to all_sky_search executables * set --verbose default value to zero * pycbc not imported in some codes * CC * rename function to be more decriptive
* Fix error querying Virgo frame type (#4523) * Fix error querying Virgo frame type * Typo * Typo * Implement Ian's suggestion * Make it work * Use an actual DeprecationWarning * Scripts for dealing with preparation of offline gracedb upload files (#4534) * Scripts for dealing with preparation of offline gracedb upload files * Update bin/all_sky_search/pycbc_make_bayestar_skymap Co-authored-by: Tito Dal Canton <tito@dalcanton.it> * reinstate SNR timeseries being saved into HDF * TDC comments * TDC comments 2 * Remove unneeded import --------- Co-authored-by: Tito Dal Canton <tito@dalcanton.it> Co-authored-by: Tito Dal Canton <tito.dalcanton@ijclab.in2p3.fr> * Use vetoed times followup in example (#4597) * Use vetoed times followup in example * Fix statistic files double-definition * Rationalize some calls to waveform properties (#4540) * rationalize some calls to waveform properties * Only allow explictly listed names * don't try to change function name * g g * Add the ability to choose how to sort injections in minifollowups (#4602) * Add the ability to choose how to sort injections in minifollowups * Minor cleanup * Minor refactor * Tom's comments * Update example search workflow * Further thoughts and suggestions * Tom's suggestion * Fix bug and Tom's suggestion * Standardise logging: bin/all_sky_search and pycbc/events (#4576) * add level to default logging * Decrease logging level for debug information in coinc_findtrigs * decrease logging level for some information in sngls_findtrigs * add named logger in pycbc/events/cuts.py * add named logger in pycbc/events/significance.py * REVERT ME: an example of usage * CC fix * Revert "REVERT ME: an example of usage" This reverts commit eb647e0. * Use init_logging throughout all_sky_search * give pycbc/events modules named loggers * missed the fact that the level was set to warn, not info, as default before * CC * missed an import * start moving verbose argparse into common facility * add common_options to all_sky_search executables * set --verbose default value to zero * pycbc not imported in some codes * CC * rename function to be more decriptive * O4b idq offline update (#4603) * Start offline dq workflow rework * Modified stat * Rewrote dq workflow * Added note for future suggested changes to dq workflow * Finished first draft of offline workflow * Fixed a comment * Removed unneeded argument to make dq workflow * Made bin templates executable * WOrking version of offline dq workflow * Reverting non-functional changes in stat.py * linting * Reverted more non-functional changes * Reverted low-latency related features * Rearrange imports * Addressed Ian's comments * Simplified masking in dq workflow * Modify dq workflow to avoid using numpy arrays * Use vetoed times followup in example (#4597) * Use vetoed times followup in example * Fix statistic files double-definition * Addressed more comments from Tom * Addressed Gareth's comments on parser arguments * Don't allow dq stat to uprank candidates * Modify dq trigger rate plots to not use dq trigger rates below 1 * Address Tom's most recent comment * Readded [Min 1] to dq plot's y-axis label * Pass bank plotting tags to dq template bin plots * Update bin/plotting/pycbc_plot_dq_flag_likelihood Co-authored-by: Thomas Dent <thomas.dent@usc.es> * Update bin/workflows/pycbc_make_offline_search_workflow Co-authored-by: Thomas Dent <thomas.dent@usc.es> * Use abs() correctly * Break up 2 try/ecept cases --------- Co-authored-by: Gareth S Cabourn Davies <gareth.cabourndavies@ligo.org> Co-authored-by: Thomas Dent <thomas.dent@usc.es> * Bumping version number --------- Co-authored-by: Tito Dal Canton <tito.dalcanton@ijclab.in2p3.fr> Co-authored-by: Gareth S Cabourn Davies <gareth.cabourndavies@ligo.org> Co-authored-by: Tito Dal Canton <tito@dalcanton.it> Co-authored-by: Thomas Dent <thomas.dent@usc.es> Co-authored-by: maxtrevor <65971534+maxtrevor@users.noreply.github.com>
* add level to default logging * Decrease logging level for debug information in coinc_findtrigs * decrease logging level for some information in sngls_findtrigs * add named logger in pycbc/events/cuts.py * add named logger in pycbc/events/significance.py * REVERT ME: an example of usage * CC fix * Revert "REVERT ME: an example of usage" This reverts commit eb647e0. * Use init_logging throughout all_sky_search * give pycbc/events modules named loggers * missed the fact that the level was set to warn, not info, as default before * CC * missed an import * start moving verbose argparse into common facility * add common_options to all_sky_search executables * set --verbose default value to zero * pycbc not imported in some codes * CC * rename function to be more decriptive
* add level to default logging * Decrease logging level for debug information in coinc_findtrigs * decrease logging level for some information in sngls_findtrigs * add named logger in pycbc/events/cuts.py * add named logger in pycbc/events/significance.py * REVERT ME: an example of usage * CC fix * Revert "REVERT ME: an example of usage" This reverts commit eb647e0. * Use init_logging throughout all_sky_search * give pycbc/events modules named loggers * missed the fact that the level was set to warn, not info, as default before * CC * missed an import * start moving verbose argparse into common facility * add common_options to all_sky_search executables * set --verbose default value to zero * pycbc not imported in some codes * CC * rename function to be more decriptive
* add level to default logging * Decrease logging level for debug information in coinc_findtrigs * decrease logging level for some information in sngls_findtrigs * add named logger in pycbc/events/cuts.py * add named logger in pycbc/events/significance.py * REVERT ME: an example of usage * CC fix * Revert "REVERT ME: an example of usage" This reverts commit eb647e0. * Use init_logging throughout all_sky_search * give pycbc/events modules named loggers * missed the fact that the level was set to warn, not info, as default before * CC * missed an import * start moving verbose argparse into common facility * add common_options to all_sky_search executables * set --verbose default value to zero * pycbc not imported in some codes * CC * rename function to be more decriptive
Some changes to how logging is handled,
this will grow to a bigger change over the coming weeks as I start to add more executables and modules into this. This MR contains executables inbin/all_sky_search
and modules inpycbc/events
:init_logging
in the executables as much as possible / where it is appropriate in order to keep logging the same throughoput the codeI have made this PR early as I thought it best to check that my plan was agreeable to others before going through all parts of the code.
One of the things I was going to change is that each module gets its own named logger (using this standard, one can then specify that logger to be more or less verbose when the module is called - this is useful for people downstream of us and is fairly standard practice from what I can see (people can even just set 'pycbc' to set things for all from pycbc which is nice). I have given an example from the cuts and significance modules.