Hello,
In my project.ini file I have configured logging to use a file logger as
follows:
[loggers]
keys = root, …, alembic
[handlers]
keys = console, file
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
qualname =
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[handler_file]
class = FileHandler
args = ("%(here)s/project.log", "a")
level = INFO
formatter = generic
Using this .ini file within my project works fine: gunicorn reads the
config and expands its values. In particular, it will add the "here"
variable when expanding the "args" value in gunicorn/glogging.py (source
<https://github.com/benoitc/gunicorn/blob/master/gunicorn/glogging.py#L243-L247>
)
defaults = CONFIG_DEFAULTS.copy()
defaults['__file__'] = cfg.logconfig
defaults['here'] = os.path.dirname(cfg.logconfig)
fileConfig(cfg.logconfig, defaults=defaults, disable_existing_loggers=False)
Alembic, however, instantiates a plain fileConfig without passing extra
defaults. And that causes the following failure:
configparser.InterpolationMissingOptionError: Bad value substitution:
option 'args' in section 'handler_file' contains an interpolation key
'here' which is not a valid option name. Raw value:
'("%(here)s/project.log", "a)'
So now I could just hardcode a path in the .ini file and that would work.
But the "here" is actually quite handy and so I was wondering if a PR would
be acceptable? Or is there another suggested solution for this?
Thanks!
Jens
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.