Mercurial > p > roundup > code
view doc/format_config.awk @ 8423:94eed885e958
feat: add support for using dictConfig to configure logging.
Basic logging config (one level and one output file non-rotating) was
always possible from config.ini. However the LOGGING_CONFIG setting
could be used to load an ini fileConfig style file to set various
channels (e.g. roundup.hyperdb) (also called qualname or tags) with
their own logging level, destination (rotating file, socket,
/dev/null) and log format.
This is now a deprecated method in newer logging modules. The
dictConfig format is preferred and allows disabiling other loggers as
well as invoking new loggers in local code. This commit adds support
for it reading the dict from a .json file. It also implements a
comment convention so you can document the dictConfig.
configuration.py:
new code
test_config.py:
test added for the new code.
admin_guide.txt, upgrading.txt CHANGES.txt:
docs added upgrading references the section in admin_guid.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 19 Aug 2025 22:32:46 -0400 |
| parents | 20943bf4f1b7 |
| children |
line wrap: on
line source
#! /bin/awk BEGIN {SECRET_KEY = "DWmbKgVUy6fF5D2Y5TD5Az+dnHhMYKCCpJzIY3H8nsU="} # delete first 8 lines NR < 9 {next} # To prevent new file generation from causing the secret_key to # change, we replace the secret key with a fixed value. /^# Default: [0-9A-z+=/]{44}/ {sub(/[0-9A-z+=/]{44}/, SECRET_KEY)} /^secret_key = [0-9A-z+=/]{44}/ {sub(/[0-9A-Za-z+=/]{44}/, SECRET_KEY)} # When we see a section [label]: # emit section index marker, # emit section anchor # set up for code formating # emit any comments/blank line that are accumulated before the # section marker # print the indented section marker # # zero the accumulator and the variable that prevents large blocks # of empty lines. /^\[([a-z]*)\]/ { match($0, /^\[([a-z]*)\].*/, section_match); section = section_match[1]; print("\n\n.. index:: config.ini; sections " section); print(".. _`config-ini-section-" section "`:"); print(".. code:: ini\n"); if (accumulate) { print(" " accumulate "\n"); } print(" " $0); accumulate = ""; prev_line_is_blank = 0; } # if the line is a setting line (even if commented out) # print the accumulated comments/blank lines and the setting line # zero the accumulator and the variable that prevents blocks of blank lines # get the next input line /^#?[a-z0-9_-]* =/ { print accumulate "\n " $0; accumulate = ""; prev_line_is_blank = 0; next; } # accumulate comment lines and indent them /^#/ { accumulate = accumulate "\n " $0; prev_line_is_blank = 0;} # accumulate a blank line only if the previous line was not blank. /^$/ { if (! prev_line_is_blank) {accumulate = accumulate $0}; prev_line_is_blank = 1; }
