BAE 3.0日志

在BAE平台中,都提供了一种查询Container中临时日志的方式,其目的是为了方便用户快速的查询最近的日志,了解container的运行状态。但是这种日志又不想走日志服务,因为日志服务太重了,实时性相对差一些,还要改自己的代码。针对这些需求,BAE提供了一种临时的解决方案—本地日志。这种日志不保证存储时间,随着container的迁移和回收,都会造成日志的丢失,所以此类日志的定位是临时的、没有服务保证的、快速及时的一种解决方案。

日志打印方式

日志打印非常简单,使用语言提供的日志模块即可,下面以python为例

#-*- coding:utf-8 -*-
import os
import sys
import logging
import logging.config

cwd = os.path.dirname(__file__)

def app(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/html')]
    start_response(status, headers)
    
    logging.config.fileConfig( "/home/bae/app/logging.conf" )
    logging.info("This is a test message")
    
    return "logging..."

from bae.core.wsgi import WSGIApplication
application = WSGIApplication(app)

其中logging.conf文件放在根目录下,如下

[loggers]
keys = root

[handlers]
keys=rotateFileHandler

[formatters]
keys=simpleFormatter

[formatter_simpleFormatter]
format = [%(asctime)s](%(levelname)s)%(name)s : %(message)s]

[logger_root]
level=INFO
handlers=rotateFileHandler

[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level=INFO
formatter=simpleFormatter
args=("/home/bae/log/user.log", 'a', 20971520, 5)




日志的清理

BAE每隔一段时间会清理用户的日志,主要有以下几种策略

  1. 日志存取路径,统一存储到 /home/bae/log下面,不要建立自文件夹和软连接
  2. 日志的切分,日志切分由用户自己指定,BAE查看日志是通过前缀名定位,后缀名自定义的方式

比如

User.log.1

User.log.2

就认为是同一种日志[user],查看日志总是会查看最新的

但是

User1.log

User2.log会被认为是两种日志[user1, user2]

2. 限制

每一大类的日志限制是100M,用户总日志大小限制是250M,超过限制就会被后台不定期清理

删除的策略一般是删除最老的日志,根据linux modify time判定

 

FAQ

1.    这会是BAE V3日志的最终形态嘛?

当然不会.

日志有两种,1)Debug,主要解决应用开发和部署期间的错误查看,不需要长期保存2)长期存储,需要长期保存,未来可能用来作为分析用,对日志的完整性要求更高。

本地日志的目标是为了即时调试,BAE后续会推出功能强大的多的分布式日志。

2.    为什么有这么多限制

本地日志,顾名思义就是存在本机上的日志,物理机的磁盘是有限制的,不可能给单个用户开很大的空间,而且我们认为250M已经足够用户做调试用了。

至于为什么要用户切分,这是考虑到不同的用户后缀使用习惯不同。而且在linux中,强行mv掉文件,有些不带reopen机制的日志库,无法正确处理mv事件。并且mv走会导致丢失部分日志。

3.    为什么不支持按照时间段查询

因为本地日志是不带schema的,也就是说BAE对用户日志格式不做任何假设,所以也没办法确认单条日志的时间点,因此不支持时间段查询

4.    为什么不支持关键字查询

关键字查询如果不做索引,理由类似于3,未来用户可以通过下载,在本地进行查询。分布式日志的查询会强大很多

5.    我的server日志看不到啊!

这个是因为以前申请的container,日志没有打到指定目录,新申请的container的都已经可以了

另外,请确认日志打印的目录为

/home/bae/log


http://godbae.duapp.com/?p=313


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值