用SLS记录应用日志
前言
应用里面报错是最为头疼的了。很多时候,程序猿为了省事,就直接来个console.log或者print之类的,好一点的写个类,然后以文件的形式写入到本地系统中。我想绝大多数程序猿都这么干的吧。然后想看日志的时候就登陆到服务器上,cat一下或者tail下,把日志打出来看。
如果只是个小网站,小应用还好说,可能只有一台服务器,登陆上去也简单。但如果网站变大了,服务器多了,难不成一台台登陆上去看么?如果想做个统计什么的,那估计要死人了。当然也有一些变通的办法,比如linux上的一些好用的工具什么的,或者也可以用一些软件搭建自己的日志收集平台,不过,都不如阿里云的SLS来得快速方便。
SLS的优势
public static void main(String args[]) throws IOException,
InterruptedException {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 8080);
HttpContext context = server.createContext("/", new LogHandler());
context.getFilters().add(new ParameterFilter());
server.setExecutor(null); // creates a default executor
server.start();
}
String accessId = "这里是你阿里云的accessID,可以在用户中心查看";
String accessKey = "这里是你阿里云的accessKey,可以在用户中心查看";
String project = "testproject";
String host = "http://cn-hangzhou.sls.aliyuncs.com";
// or create a client with a setting endpoint address
SLSClient client = new SLSClient(accessId, accessKey, host);
// generate two logs
Vector<LogItem> logGroup = new Vector<LogItem>();
LogItem logItem = new LogItem((int) (new Date().getTime() / 1000));
logItem.PushBack("userId", (String) params.get("userId"));
logGroup.add(logItem);
client.PutData(project, "这里是Category的名字", "", logGroup);
String response = "{\"result\": true}";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
<dependencies>
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>aliyun-openservices-sls-v0.3</artifactId>
<version>0.1.0</version>
</dependency>
</dependencies>
var request = require("request");
request.post("http://127.0.0.1:8080", { form: { "userId": "xxxxx" } }, function(err, response, body){
if(!err && response && response.statusCode === 200 && body){
var result = JSON.parse(body);
if(result.result !== true){
console.log(result.code);
}
}
if(callback){
callback(err, body);
}
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。