-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstreamlit_logger.py
More file actions
24 lines (22 loc) · 1.01 KB
/
streamlit_logger.py
File metadata and controls
24 lines (22 loc) · 1.01 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
import logging
# https://discuss.streamlit.io/t/streamlit-duplicates-log-messages-when-stream-handler-is-added/16426/4
def create_logger(name, level=logging.INFO, file=None, addtime=False):
logger = logging.getLogger(name)
logger.propagate = False
logger.setLevel(level)
if addtime:
format = "%(asctime)s :: %(message)s"
else:
format = '%(message)s'
#if no streamhandler present, add one
if sum([isinstance(handler, logging.StreamHandler) for handler in logger.handlers]) == 0:
ch = logging.StreamHandler()
ch.setFormatter(logging.Formatter(format, '%y-%m-%d %H:%M:%S'))
logger.addHandler(ch)
#if a file handler is requested, check for existence then add
if file is not None:
if sum([isinstance(handler, logging.FileHandler) for handler in logger.handlers]) == 0:
ch = logging.FileHandler(file, 'w')
ch.setFormatter(logging.Formatter(format, '%y-%m-%d %H:%M:%S'))
logger.addHandler(ch)
return logger