四时宝库

程序员的知识宝库

使用阿里云oss记录业务日志(阿里云的日志服务是什么技术)

阿里云oss作为一个非常好用的一个存储服务, 一般作为一些静态资源的存储,如web开发中的css、js图片等或者是客户上传的附件、图片等。今天我们来实现一个非主流的用法:用他来记录日志.

这得益于阿里云oss的"追加上传文件"接口,这样我们不需要每次获取oss上的文件内容后再手动日志内容然后后上传文件。

php示例代码:

function ossLog($tag, $txt) {

$txt=date("[H:i:s] ").$txt;

try {

$ossClient = new OssClient(OSS_KEY, OSS_SEC, OSS_END_POINT);

} catch (OssException $e) {

return;

}

$object = "log/" . date("Y-m-d") . "/" . $tag . ".log";

try {

$meta = $ossClient->getObjectMeta(OSS_BUCKET, $object);

$pos = intval($meta['x-oss-next-append-position']);

} catch (OssException $e) {

$pos = 0;

}

try {

$position = $ossClient->appendObject(OSS_BUCKET, $object, $txt . "\n", $pos);

} catch (OssException $e) {

}

}

几个注意点:

  1. 首次上传文件时,偏移量(就是appendObject的第4个参数)设置为0就行

  2. 后续几次上件文件时,偏移量必须通过getObjectMeta来获取其中的"x-oss-next-append-position"而不是"Content-Length"

  3. 再额外写个脚本,每隔一段时间检测日志,业务系统如果有什么问题就可以早发现、早治疗

  4. 如果担心日志文件被其他人看到,可通过修改日志文件的路径为随机字符串的方式来解决

  5. oss php sdk的引入请移步https://help.aliyun.com/document_detail/32099.html

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接