Python每回合都记录不同的文件

时间:2017-09-03 19:56:41

标签: python python-2.7 logging

我使用的是运行24/7的python 2.7脚本,每次执行循环时,我都希望记录模块生成不同的日志文件。每个文件都有时间戳有文件名以避免混淆。

到目前为止我得到了:

def main():

    while True:

        datetimenow = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M:%S")

        logging.basicConfig(format='%(asctime)s %(levelname)-8s %(message)s',
                            datefmt='%a, %d %b %Y %H:%M:%S', filename="logs/" + datetimenow + '.log',
                            level=logging.INFO)
        logging.getLogger().addHandler(logging.StreamHandler())


        # ... start of action


    if __name__ == "__main__":

        main()

这会生成一个文件,当循环再次启动时,它不会关闭并打开一个新文件。

此外,似乎控制台输出是双重打印的,因为每行输出到控制台两次。

要解决这些问题的想法吗?

1 个答案:

答案 0 :(得分:0)

好的,我通过删除basicConfig片段并构建两个处理程序来实现它,一个在循环内部,用于具有不同时间戳的文件和一个用于控制台的类。关键是在循环结束时删除处理程序,然后再次使用不同的日期添加处理程序。这是完整的例子:

var inputChanged = false;

$(".test").on("change", function(){
  inputChanged = true;
});
  
$(".test").on("blur", function(){
  var flag=true;

  setTimeout(function(){
  
    // Check if one input is focussed 10 ms after that blur.
    $(".test").each(function(){
      if( $(this).is(":focus") ){
        flag = false;
      }
    });

    // If no input focussed and at least one input changed.
    if(flag && inputChanged){
      $(".test").css({"background-color":"red"});
    }
  },10);
});

睡眠(5)用于测试目的,并且它不会太快。