blueoil icon indicating copy to clipboard operation
blueoil copied to clipboard

print() is not suitable for logging

Open kchygoe opened this issue 5 years ago • 5 comments

Now entire blueoil modules use print() as logging, but this should be logging class for better user experiences.

kchygoe avatar Sep 12 '19 05:09 kchygoe

@kchygoe Thank you for adding the issue!! Do you know any good example for logging class?

I'm not familiar with logging utility (log level, format, etc...)

iizukak avatar Sep 12 '19 06:09 iizukak

@tsawada Do you know good manners or article for create logging class in Python?

iizukak avatar Sep 17 '19 06:09 iizukak

I think the easiest way is to put

import logging
logger = logging.getLogger(__name__)

at every module top, and use the logger object.

Other option is to add logger property in (almost) every object. This allows more control on the user, but we need to type more :)

class SomeClass:
    def __init__(self, logger=None):
        self.logger = logger or logging.getLogger(__name__)
    def some_method(self):
        self.logger.info(...)

tsawada avatar Sep 18 '19 02:09 tsawada

I prefer

import logging
logger = logging.getLogger(__name__)

👍

ruimashita avatar Sep 18 '19 11:09 ruimashita

@tsawada @ruimashita Thanks. I see.

iizukak avatar Sep 19 '19 00:09 iizukak