Я писал простые скрипты, и я пытаюсь использовать регистратор для генерации журнала для каждой функции в скриптах.ошибка регистрации в python
1) на основе имени функции Я создаю обработчик файла регистратора, и я пытаюсь поместить журналы с помощью этого обработчика. Я также удаляю предыдущий существующий файл с тем же именем.
3) В конце функции я закрываю обработчик.
Моя проблема являются:
1), даже если я закрываю обработчик, в следующий раз я бегу ту же функцию, я получаю ошибку, что файл я пытаюсь удалить (как часть установки регистратора file handler) все еще используется.
2) Кроме того, регистратор печатает все на консоль, который я не хочу, я просто хочу, чтобы все это записывало в файл.
Вот ЗК функции:
def setLogger(path):
"""
@purpose: Intializes basic logging directory and file
"""
LOG_FILENAME = path + "\\" + "log.txt"
#logging.basicConfig(filename=LOG_FILENAME,
# format='%(levelname)s %(asctime)s %(message)s',level=logging.INFO
# )
logger = logging.getLogger()
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler(LOG_FILENAME)
file_handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(levelname)s %(asctime)s %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
def unsetLogger(logger):
"""
@purpose: performs a basic shutdown of logger
"""
logger.handlers[0].close()
logger.removeHandler(logger.handlers[0])
logging.shutdown
Путь я использую их есть: для например:
def fun():
os.remove(path)
logger = setLogger(path)
` logging.info("hi") #this writes to file and prints on the console as well
unsetLogger(logger)
если я запускаю функцию удовольствие() один раз, его все хорошо. но если я запустил его снова, я получаю, что не могу удалить ошибку для файла журнала.
Спасибо заранее. learningNinja
Почему вы удаляете файл каждый раз, когда запускаете метод еще раз? Вы действительно не хотите больше одного исполнения в журнале за раз? Почему бы не добавить к существующему файлу (который по умолчанию) и использовать что-то вроде TimedRotatingFileHandler, которое поможет предотвратить слишком большой размер файла? –
Фактически я делал это согласно требованию. Я не могу добавить файлы, которые еще сделал бы. – LearningNinja