TimedRotatingFileHandler, изменяющий имя файла?

Щелкните правой кнопкой мыши по проекту. Свойства-> Свойства конфигурации-> Общие-> Компоновщик.

Я нашел два параметра, которые необходимо установить. В разделе System: SubSystem = Windows (/ SUBSYSTEM: WINDOWS) В разделе Дополнительно: EntryPoint = main

15
задан UberJumper 3 December 2008 в 20:18
поделиться

4 ответа

"Как я могу измениться, как это изменяет имя файла?"

, Так как это не документируется, я выбрал читать источник. Это - то, что я заключил из чтения источника logging/handlers.py

handler = logging.handlers.TimedRotatingFileHandler("C:\\isis_ops\\logs\\Rotate_Test",'midnight',1)
handler.suffix = "%Y-%m-%d" # or anything else that strftime will allow
root_logger.addHandler(handler)

, суффикс является строкой форматирования.

36
ответ дан 1 December 2019 в 00:41
поделиться

Спасибо.

я посмотрел на источник.

нет действительно способа изменить его форму. Начиная с управления суффиксом, только добавляет в конец имени файла. Эфир путь, нет никакого пути реального способа управлять полным именем файла, на что я надеялся, был то, где можно объявить маску файла, и когда это сделает "Трансформацию", это создаст новое имя файла на основе маски файла. Я просто собираюсь вернуться к своей исходной идее, должен был просто уничтожить целую подсистему входа и повторно инициализировать ее с новым именем файла когда она RollsOver.

Спасибо Tho.

1
ответ дан 1 December 2019 в 00:41
поделиться

Просто обновление, я закончил тем, что шел другой подход.

самый легкий способ, которым я нашел для изменения вывода файла, должен был просто использовать FileHandler, затем когда пора переделать список.

я делаю это:

if(current_time > old_time):
    for each in logging.getLogger('Debug').handlers:
      each.stream = open("C:\\NewOutput", 'a')

Thats суть его. Потребовался большой ввод по абсолютному адресу и оглядывание, но изменение потока является самым легким способом сделать так.

:)

1
ответ дан 1 December 2019 в 00:41
поделиться

Есть другой подход к этой проблеме: например, мне нужно ежедневно менять журналы, но они должны иметь суффикс в формате% m% d% Y ...

Итак, я написал ремикс TimedRotatingFileHandler!

try:
    import codecs
except ImportError:
    codecs = None
import logging.handlers
import time
import os

class MyTimedRotatingFileHandler(logging.handlers.TimedRotatingFileHandler):
  def __init__(self,dir_log):
   self.dir_log = dir_log
   filename =  self.dir_log+time.strftime("%m%d%Y")+".txt" #dir_log here MUST be with os.sep on the end
   logging.handlers.TimedRotatingFileHandler.__init__(self,filename, when='midnight', interval=1, backupCount=0, encoding=None)
  def doRollover(self):
   """
   TimedRotatingFileHandler remix - rotates logs on daily basis, and filename of current logfile is time.strftime("%m%d%Y")+".txt" always
   """ 
   self.stream.close()
   # get the time that this sequence started at and make it a TimeTuple
   t = self.rolloverAt - self.interval
   timeTuple = time.localtime(t)
   self.baseFilename = self.dir_log+time.strftime("%m%d%Y")+".txt"
   if self.encoding:
     self.stream = codecs.open(self.baseFilename, 'w', self.encoding)
   else:
     self.stream = open(self.baseFilename, 'w')
   self.rolloverAt = self.rolloverAt + self.interval
3
ответ дан 1 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: