BAE 3.0日志
来源:互联网 发布:windows和安卓平板 编辑:程序博客网 时间:2024/05/22 06:40
在BAE平台中,都提供了一种查询Container中临时日志的方式,其目的是为了方便用户快速的查询最近的日志,了解container的运行状态。但是这种日志又不想走日志服务,因为日志服务太重了,实时性相对差一些,还要改自己的代码。针对这些需求,BAE提供了一种临时的解决方案—本地日志。这种日志不保证存储时间,随着container的迁移和回收,都会造成日志的丢失,所以此类日志的定位是临时的、没有服务保证的、快速及时的一种解决方案。
日志打印方式
日志打印非常简单,使用语言提供的日志模块即可,下面以python为例
#-*- coding:utf-8 -*-import osimport sysimport loggingimport logging.configcwd = 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 WSGIApplicationapplication = 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=INFOhandlers=rotateFileHandler[handler_rotateFileHandler]class=handlers.RotatingFileHandlerlevel=INFOformatter=simpleFormatterargs=("/home/bae/log/user.log", 'a', 20971520, 5)
日志的清理
BAE每隔一段时间会清理用户的日志,主要有以下几种策略
- 日志存取路径,统一存储到 /home/bae/log下面,不要建立自文件夹和软连接
- 日志的切分,日志切分由用户自己指定,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
- BAE 3.0日志
- bae扩展服务日志等级区分
- Clouda托管到BAE 3.0,修改配置文件的过程
- bae是什么
- bae-test
- bae 收费
- java 正确 连接 bae 3.0 MySQL 最简单有效的方法
- BAE支持HTML5 Canvas
- bae产品展示
- JAVA BAE 问题总结
- BAE保存远程图片
- 百度 Java BAE
- 百度BAE数据库连接问题
- bae 配置 struts2
- BAE Maven开发笔记
- BAE json 返回乱码。
- jfinal+bae部署
- ghost 安装在bae
- SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle
- c++标准库 及 命名空间std
- Maven中的占位符
- YII中百度编辑器器的使用
- 细谈Ehcache页面缓存使用
- BAE 3.0日志
- oracle在sqlplus中执行sql文件
- C++中的this指针
- codeforce round#261(Div2)
- arcengine 缓冲区查询 (ITopologicalOperator ISpatialFilter接口 )
- Hibernate3查询返回Map探秘
- webstorm快捷键大全
- SingleTouch 和 MutliTouch
- 遇到"ORA-39700: 必须用 UPGRADE 选项打开数据库"问题