У меня есть общий файл log.py
, в который я импортировал регистрацию Python и использовал все функции в нем.
Теперь мне нужно отформатировать журнал так, чтобы
(current_script_name) [levelname] message
log.py
import logging
import inspect
import sys
class log(object):
#file_name = sys.argv[0] #this will give b.py instead of a.py
file_name = str(inspect.getfile(inspect.currentframe())).split("/")[-1]
logging.basicConfig(level=logging.INFO, format="("+file_name+") [%(levelname)s] %(message)s")
def __init__(self):
pass
def info(msg):
logging.info(msg)
def error(msg):
logging.error(msg)
def warning(msg):
logging.warning(msg)
def debug(msg):
logging.debug(msg)
Теперь у меня есть еще один файл с именем a.py
, в который я импортировал указанный выше файл и использовал его как
import log
def some():
log.info("Hello this is information")
Это даст следующий вывод при вызовеsome()
in b.py
(log.py) [INFO] Hello this is information
но я ожидаю, что ниже выводится, потому что log.info()
код используется в a.py
(a.py) [INFO] Hello this is information
Примечание: я не долженпередать любой аргумент для log.info(msg)
строки в a.py