Using loguru in a library
Roy Hann
specially at processed.almost.meat
Tue May 2 04:17:30 EDT 2023
MRAB wrote:
> On 2023-04-30 16:40, Roy Hann wrote:
>> Is there anyone using loguru (loguru 0.5.3 in my case) successfully in a
>> library?
>>
>>
>> In my __init__.py in mylib I do
>>
>> logger.disable('mylib')
>>
>> which definitely works. I don't get any more logging.
>>
>> I "pip install ." the library, then in mytest.py I do
>>
>> import mylib
>> logger.enable('mylib')
>>
>> expecting that it would report any log messages above level DEBUG, just
>> as it does when I don't disable logging. Unfortunately it doesn't
>> have any effect; it doesn't report any logging from mylib.
>>
>> I have verified that __name__ is visible in the library and is 'mylib'.
>>
>> I would also have expected that logger.enable(None) would turn all the
>> logging on everywhere but it seems not.
>>
>> I have probably misunderstood how logger.enable() is supposed to be
>> used. Can anyone share a brief example?
>>
> According to the docs, the argument is the name of the module.
>
> In your example, the name of the module (i.e. file) is "__init__";
> "mylib" is the name of the package.
Thanks for taking a look at this. I will continue to play around with
it using your suggestion, but according to the snippets and recipes
for loguru at
https://loguru.readthedocs.io/en/stable/resources/recipes.html#configuring-loguru-to-be-used-by-a-library-or-an-application
I need to refer to the package name in disable() in __init__.py, not the
module/file name, and so I expect to use it in enable() in my main.
Also, as mentioned, I have already verified that __name__ in my
package is referring to the package name not the module.
Since every package will have a __init__.py even if it's empty, using
the module name to control logging by package would be difficult.
Or so I say. My code isn't working so I am wrong about some or all
of this. I'll keep tinkering and looking out for advice/suggestions
here.
Roy
More information about the Python-list
mailing list