blob: 7cf19e9531887843bbafaf0cd53937364bf91282 [file] [log] [blame]
// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Provides the implementation of Syslog.
#include "entd/syslog.h"
#include <iostream>
#include <string>
#include <list>
#include <vector>
#include <base/basictypes.h>
#include <base/logging.h>
#include <curl/curl.h>
#include "entd/utils.h"
namespace entd {
Syslog::~Syslog() {
CleanupTemplate(); // We only have one Syslog instance
}
static v8::Handle<v8::Value> dispatch_Info(const v8::Arguments& args) {
std::string msg;
for (int i = 0; i < args.Length(); ++i) {
if (i != 0) msg += '\n';
msg += utils::ValueAsUtf8String(args[i]);
}
LOG(INFO) << msg;
return v8::True();
}
static v8::Handle<v8::Value> dispatch_Warn(const v8::Arguments& args) {
std::string msg;
for (int i = 0; i < args.Length(); ++i) {
if (i != 0) msg += '\n';
msg += utils::ValueAsUtf8String(args[i]);
}
LOG(WARNING) << msg;
return v8::True();
}
static v8::Handle<v8::Value> dispatch_Error(const v8::Arguments& args) {
std::string msg;
for (int i = 0; i < args.Length(); ++i) {
if (i != 0) msg += '\n';
msg += utils::ValueAsUtf8String(args[i]);
}
LOG(ERROR) << msg;
return v8::True();
}
// static
void Syslog::SetTemplateBindings(
v8::Handle<v8::ObjectTemplate> template_object) {
template_object->Set(v8::String::NewSymbol("info"),
v8::FunctionTemplate::New(dispatch_Info));
template_object->Set(v8::String::NewSymbol("warn"),
v8::FunctionTemplate::New(dispatch_Warn));
template_object->Set(v8::String::NewSymbol("error"),
v8::FunctionTemplate::New(dispatch_Error));
}
} // namespace entd