我想将日志事件作为带有参数化字符串消息的JSON对象发送到Loggly.我们的项目目前有很多代码如下:
String someParameter = "1234";
logger.log("This is a log message with a parameter {}", someParameter);
Run Code Online (Sandbox Code Playgroud)
我们目前正在使用Logback作为我们的SLF4J后端,而Logback的JsonLayout将我们的ILogEvent对象序列化为JSON.因此,当我们将日志事件发送到Loggly时,它们看起来像这样:
{
"message": "This is a log message with a parameter 1234",
"level": INFO,
....
}
Run Code Online (Sandbox Code Playgroud)
虽然这确实有效,但它会message
为每个值发送一个不同的字符串someParameter
,这使得Loggly的自动过滤器旁边无用.
相反,我想要一个创建如下所示的JSON的布局:
{
"message": "This is a log message with a parameter {}",
"level": INFO,
"parameters": [
"1234"
]
}
Run Code Online (Sandbox Code Playgroud)
这种格式允许Loggly将所有日志事件与消息This is a log message with a parameter
组合在一起,而不管其值如何someParameter
.
看起来Logstash的KV过滤器做了类似的事情 - 有没有办法用Logback完成这个任务,没有编写我自己的布局来执行ILogEvent对象的自定义序列化?
我希望找到loggly的免费替代方案,以便用应用程序编写我的日志.也许有开源替代或免费,但他需要部署到我的VM(Azure).
我想将Loggly设置为在AWS Elastic Beanstalk上运行,但无法找到有关如何执行此操作的任何信息.是否有任何指南,或一些关于如何开始的一般指导?
我使用Raspbian Jessie OS在Raspberry Pi 2上运行了一个物联网项目.
它是在NodeJS(v4)中运行的Web服务器,我正在使用Winston登录Loggly的日志记录服务.当项目npm start
从终端开始(当作为'pi'或通过sudo -s运行时)时,一切正常.但是,当项目启动时,日志记录不起作用,我无法解决原因.
要在启动时启动项目,我创建了一个etc/init.d脚本.该项目启动并为交通提供服务,除了伐木以外,一切都很好.我看不到任何错误(虽然没有记录没有帮助).这是我从etc/init.d脚本中启动项目的方法:
/usr/bin/node /var/www/curtains/server.js
Run Code Online (Sandbox Code Playgroud)
我正在使用winston:https://www.npmjs.com/package/winston和winston-loggly:https://www.npmjs.com/package/winston-loggly .
任何想法为什么,当启动进程时,日志记录不起作用?
按要求添加winston初始化代码:
var winston = require('winston');
require('winston-loggly');
winston.add(winston.transports.Loggly, {
token: "<snip>",
subdomain: "<snip>",
tags: ["tag", ip.address()],
json:true
});
winston.log('info',"Server.js starting up");
Run Code Online (Sandbox Code Playgroud) Loggly处理的每秒客户端请求数量是多少?我每秒只能处理大约10-20个请求,我想知道这是否正常.
我正在使用loggly与节点js.这是初始化脚本:
var winston = require('winston');
require('winston-loggly-bulk');
winston.add(winston.transports.Loggly, {
inputToken: "TOKEN",
subdomain: "SUBDOMAIN",
tags: ["Winston-NodeJS"],
json:true
});
Run Code Online (Sandbox Code Playgroud)
看起来标签是在winston.add
初始化时设置的,但是如果我想在向记录器发送消息时动态设置一些标签怎么办?
我想将Monra日志从我的Laravel 5.1应用程序发送到Loggly.com在线日志管理服务.从所有可能的环境,包括当地的发展.
我按照此处概述的步骤在我的nodejs app中配置loggly:
npm install winston
npm install winston-loggly-bulk
Run Code Online (Sandbox Code Playgroud)
并在index.js中:
var winston = require('winston');
require('winston-loggly-bulk');
winston.add(winston.transports.Loggly, {
token: "8ea17e10-bfce-4f78-bc18-51ab6c61f78c",
subdomain: "qbesdeveloper",
tags: ["Winston-NodeJS"],
json:true
});
Run Code Online (Sandbox Code Playgroud)
但我一直收到这个错误:
Error: Cannot find module 'loggly'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/user/totoapi/node_modules/winston-loggly-bulk/lib/winston-loggly.js:10:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/user/totoapi/index.js:10:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Symfony2 中使用 Monolog Loggly 处理程序,但无法让它工作:
# config.yml
monolog:
handlers:
main:
type: stream
token: my-loggly-token
level: info
handler: loggly
tag: symfony-app
Run Code Online (Sandbox Code Playgroud)
我已经删除了 monolog 条目config_dev.yml
,config_prod.yml
因此上面的设置没有被覆盖。在控制器内部,我试图触发一个信息事件,但它没有出现在 Loggly 中。我哪里错了?
我正在使用 Loggly logback appender,详见他们的设置指南:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="LOGGLY" class="ch.qos.logback.ext.loggly.LogglyAppender">
<endpointUrl>https://logs-01.loggly.com/inputs/MY_TOKEN/tag/logback</endpointUrl>
<pattern>%d{"ISO8601", UTC} %p %t %c %M - %m%n</pattern>
</appender>
<root level="INFO">
<appender-ref ref="LOGGLY" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作(日志出现在 Loggly 中),但速度非常慢,每条日志消息大约 1 秒。它几乎停止了我的应用程序。是否有我遗漏的性能调整?