English | 中文
gqylpy-log
is a secondary encapsulation oflogging
that allows for more convenient and quick creation of loggers. Using thegqylpy_log
module, you can rapidly createlogging.Logger
instances and complete a series of logging configurations, making your code cleaner.
pip3 install gqylpy_log
gqylpy_log
comes with a built-in logger based on logging.StreamHandler
. You can directly call it as follows:
import gqylpy_log as glog
glog.debug(...)
glog.info(...)
glog.warning(...)
glog.error(...)
glog.critical(...)
Its default configuration is as follows:
{
"level": "NOTSET",
"formatter": {
"fmt": "[%(asctime)s] [%(module)s.%(funcName)s.line%(lineno)d] "
"[%(levelname)s] %(message)s",
"datefmt": "%F %T"
},
"handlers": [{"name": "StreamHandler"}]
}
You can adjust the default logger configuration as needed:
glog.default["level"] = "INFO"
However, please note that the default logger is created the first time a logging method is called. To make changes effective, you must modify the configuration before the first call.
The following example demonstrates how to obtain a logger with three handlers:
import gqylpy_log as glog
log: logging.Logger = glog.__init__(
"alpha",
level="DEBUG",
formatter={"fmt": "[%(asctime)s] [%(levelname)s] %(message)s"},
handlers=[
{"name": "StreamHandler"},
{
"name": "FileHandler",
"level": "ERROR",
"filename": "/var/log/alpha/error.log",
"encoding": "UTF-8",
"formatter": {"fmt": "[%(asctime)s] %(message)s", "datefmt": "%c"},
"options": {"onlyRecordCurrentLevel": True}
},
{
"name": "TimedRotatingFileHandler",
"level": "INFO",
"filename": "/var/log/alpha/alpha.log",
"encoding": "UTF-8",
"when": "D",
"interval": 1,
"backupCount": 7
}
]
)
log.info(...)
Alternatively, if you prefer to always call it through the gqylpy_log
module, specify the gname
parameter:
glog.__init__(..., gname="alpha")
Please note that specifying the gname
parameter will override and permanently disable the default logger.