当前位置: 首页 > 面试题库 >

TimedRotatingFileHandler在具有多实例的Django中无法正常工作

商业
2023-03-14
问题内容

我每天都使用TimedRotatingFileHandler记录Django日志并轮换使用,但是检查日志文件,奇怪的问题是昨天的日志被截断了,今天的日志很少,昨天的日志丢失了!

Django 1.4
uwsgi 1.4.9
Python 2.6

我从uwsgi开始8个django实例。setting.py是

'handlers': {
    'apilog': {
        'level': 'INFO',
        'class': 'logging.handlers.TimedRotatingFileHandler',
        'filename': os.path.join(APILOG, "apilog.log" ),
        'when': 'midnight',
        'formatter': 'info',
        'interval': 1,
        'backupCount': 0,
    },
 },
 'loggers': {                                                                                                                        
    'apilog': {
        'handlers': ['apilog'],
        'level': 'INFO',
        'propagate': True  
     },
  }

我错过了什么?为什么旧的日志丢失了?


问题答案:

您不应该同时从多个进程登录到基于文件的处理程序-不支持,因为它没有可移植的OS支持。

要从多个进程登录到单个目标,可以使用以下方法之一:

  • 使用类似 ConcurrentLogHandler
  • 使用SysLogHandler(或NTEventLogHandler在Windows上)
  • 使用SocketHandler可以将日志发送到单独的进程以写入文件
  • 使用QueueHandlermultiprocessing.Queue,所概述这里。


 类似资料:
  • 问题内容: 安装了django之后,我尝试了一下并成功了,然后我得到了一个简单的网站,并且想从一个真实的地方开始,所以我尝试了一下,但没有任何反应。每当我尝试执行命令时,现在什么都没有发生。 问题答案: 对于现在绊脚石的任何人来说,此问题是由于Windows不遵循django-admin.py顶部的#!C:\ Path \ To \ Virtualenv \ Scripts \ Python.ex

  • 问题内容: 1.背景 我的Maven项目中有很多模块和子模块,并且和一切正常。我也可以毫无问题地将其部署在服务器上。 我决定遵循此Maven命名转换,我正在进行一些测试,并使用一个适当的名称。 我为根工件定义的模式是,以及为模块和子模块创建的模式是: 公司任何工件任何模块1 公司-任何工件-任何模块2-任何子模块1 公司-任何工件-任何模块2-任何子模块2 的模式是: 公司任何人工制品任何模块1-

  • 问题内容: 我有一个数据库表 mytable ,它的列 名称 为Varchar格式,列 日期 为Datetime值。我想用按日期分组的某些参数来计算名称。这是我的工作: 似乎这里的范围语法有问题,如果我这样做的话,它确实可以正确计数以’a’开头的所有字段。但是,上面的查询为n返回0,尽管应该计算包含至少一个字母的所有字段。 问题答案: 你写: 似乎这里的范围语法有问题 的确如此。MySQL的LIK

  • 问题内容: 尽管我很确定这是昨天或前一天工作的,例如,在IE10中不再起作用。我已经测试了我的浏览器,但是它不再起作用了。还有谁有相同的问题吗?或者,它永远都行不通吗? 问题答案: IE不支持输入type =“ number”,但您可以使用jQueryUISpinner小部件。它非常易于使用,并且具有许多对开发人员友好的API。

  • 问题内容: 我正在尝试使用socket.io设置服务器,但结果不佳。 我主要遵循此指南,尽管它有些过时了:http : //www.williammora.com/2013/03/nodejs-tutorial- building-chatroom-with.html 问题来自socket.io,我不确定是客户端还是服务器端。似乎正在尝试不断轮询服务器,但又找回了404。听起来好像socket.i

  • 问题内容: 工作如何? 以下代码在这里不起作用: Employee.java 地址.java persistence.xml 这是测试类……请检查城市名称,它没有在ADDRESS表中按降序存储地址值 JPAOrderByAnnotationTest 问题答案: 我认为您误解了注释的实际作用。根据javadoc: 指定在 检索 关联或集合时,将值指定为关联的集合或元素集合的元素的顺序。 [添加重点]