forked from hclivess/nado
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog_ops.py
More file actions
41 lines (30 loc) · 1.16 KB
/
log_ops.py
File metadata and controls
41 lines (30 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import logging
import os.path
from logging.handlers import RotatingFileHandler
import coloredlogs
from data_ops import get_home
from dircheck import make_folder
def get_logger(max_detail=False, file="log.log"):
if not os.path.exists(f"{get_home()}/logs"):
make_folder(f"{get_home()}/logs", strict=False)
# Create a logger object.
format = "%(asctime)s %(levelname)s %(message)s"
logger = logging.getLogger(__name__)
logger.propagate = False
file_handler = RotatingFileHandler(
f"{get_home()}/logs/{file}", maxBytes=1000000, backupCount=2, mode="a"
)
file_handler.setFormatter(logging.Formatter(format))
logger.addHandler(file_handler)
if max_detail:
coloredlogs.install(level="DEBUG")
coloredlogs.install(level="DEBUG", logger=logger, fmt=format)
return logger
if __name__ == "__main__":
# Some examples.
logger = get_logger(file=f"{get_home()}/logs.log")
logger.debug("this is a debugging message")
logger.info("this is an informational message")
logger.warning("this is a warning message")
logger.error("this is an error message")
logger.critical("this is a critical message")