How to set logging file / directory in Abseil Python?


I have a Python script using

Documentation does not specify how to set output file like in PEP 282.

I thought that Abseil Logging is built on top of the standard Python logging and I could just set the logging.basicConfig(filename='myapp.log', level=logging.INFO)

But I get:

AttributeError: module ‘absl.logging’ has no attribute ‘basicConfig’

Asked By: engineer-x



For PEP-282 formatted output, use:

logging.basicConfig(filename='myapp.log', level=logging.INFO)
Answered By: J_H

You can set it via the command line:

python --log_dir=/path/to/my/logs

See the (limited) flag documentation by running --helpfull and looking at the absl.logging module.

You can also change it in code (somewhat convolutedly) by calling:

from absl import logging

# ...

print('Logging to: %s' % logging.get_log_file_name())

This will print something like /whatever/py_<myprog>.<hostname>.log.INFO.<ts>. Note that this also creates a friendlier symlink for your latest run that’s just /whatever/py_<myprog>.INFO.

Answered By: kris
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.