有人用 Sailsjs 设置滚动条吗?
Has anyone setup rollbar with Sailsjs?
我正在尝试使用 Sails.js 设置 Rollbar.com 异常监控。
我查看了他们的 "Rollbar notifier for Node.js" 部分。到目前为止我还没有得到它运行。
我假设我需要以某种方式更新 app.js
文件,但在启动或登录 Rollbar 时没有发现任何错误。
任何提示都会很棒!
这是我的副本 app.js
:
/**
* app.js
*
* Use `app.js` to run your app without `sails lift`.
* To start the server, run: `node app.js`.
*
* This is handy in situations where the sails CLI is not relevant or useful.
*
* For example:
* => `node app.js`
* => `forever start app.js`
* => `node debug app.js`
* => `modulus deploy`
* => `heroku scale`
*
*
* The same command-line arguments are supported, e.g.:
* `node app.js --silent --port=80 --prod`
*/
// Ensure we're in the project directory, so relative paths work as expected
// no matter where we actually lift from.
process.chdir(__dirname);
// Ensure a "sails" can be located:
(function() {
var sails;
try {
sails = require('sails');
} catch (e) {
console.error('To run an app using `node app.js`, you usually need to have a version of `sails` installed in the same directory as your app.');
console.error('To do that, run `npm install sails`');
console.error('');
console.error('Alternatively, if you have sails installed globally (i.e. you did `npm install -g sails`), you can use `sails lift`.');
console.error('When you run `sails lift`, your app will still use a local `./node_modules/sails` dependency if it exists,');
console.error('but if it doesn\'t, the app will run with the global sails instead!');
return;
}
// Try to get `rc` dependency
var rc;
try {
rc = require('rc');
} catch (e0) {
try {
rc = require('sails/node_modules/rc');
} catch (e1) {
console.error('Could not find dependency: `rc`.');
console.error('Your `.sailsrc` file(s) will be ignored.');
console.error('To resolve this, run:');
console.error('npm install rc --save');
rc = function () { return {}; };
}
}
// Initialize Rollbar
var rollbar = require("rollbar");
rollbar.init("MY-ROLLBAR-TOKEN");
// Start server
sails.lift(rc('sails'));
})();
你需要告诉 rollbar 要捕捉什么。如果您刚刚阅读了
上的快速入门
// more is required to automatically detect and report errors.
// keep reading for details
要报告任何未捕获的异常,您需要:
var options = {
exitOnUncaughtException: true
};
rollbar.handleUncaughtExceptions("POST_SERVER_ITEM_ACCESS_TOKEN", options);
/**
* Built-in Log Configuration
* (sails.config.log)
*
* Configure the log level for your app, as well as the transport
* (Underneath the covers, Sails uses Winston for logging, which
* allows for some pretty neat custom transports/adapters for log messages)
*
* For more information on the Sails logger, check out:
* http://sailsjs.org/#!/documentation/concepts/Logging
*/
var winston = require('winston')
var rollbar = require('rollbar')
var customLogger = new (winston.Logger)({
exitOnError: false, // don't crash on exception
transports: [
new (winston.transports.Console)({
level: 'debug',
handleExceptions: true,
prettyPrint: true,
silent: false,
timestamp: true,
colorize: true,
json: false
}),
new (winston.transports.File)({
filename: 'logs/common.log',
name: 'file.all',
level: 'debug',
maxsize: 1024000,
maxFiles: 10,
handleExceptions: true,
json: false
}),
new (winston.transports.File)({
filename: 'logs/error.log',
name: 'file.error',
level: 'error',
maxsize: 1024000,
maxFiles: 10,
handleExceptions: true,
json: false
})
]
})
if (process.env['ROLLBAR_TOKEN']) {
rollbar.init(process.env['ROLLBAR_TOKEN'], {
environment: process.env['NODE_ENV']
})
customLogger.on('logging', function (transport, level, msg, meta) {
if (transport.name === 'file.error') {
rollbar.reportMessage(msg + meta)
}
})
}
module.exports.log = {
custom: customLogger,
level: 'silly',
inspect: false
}
我正在尝试使用 Sails.js 设置 Rollbar.com 异常监控。
我查看了他们的 "Rollbar notifier for Node.js" 部分。到目前为止我还没有得到它运行。
我假设我需要以某种方式更新 app.js
文件,但在启动或登录 Rollbar 时没有发现任何错误。
任何提示都会很棒!
这是我的副本 app.js
:
/**
* app.js
*
* Use `app.js` to run your app without `sails lift`.
* To start the server, run: `node app.js`.
*
* This is handy in situations where the sails CLI is not relevant or useful.
*
* For example:
* => `node app.js`
* => `forever start app.js`
* => `node debug app.js`
* => `modulus deploy`
* => `heroku scale`
*
*
* The same command-line arguments are supported, e.g.:
* `node app.js --silent --port=80 --prod`
*/
// Ensure we're in the project directory, so relative paths work as expected
// no matter where we actually lift from.
process.chdir(__dirname);
// Ensure a "sails" can be located:
(function() {
var sails;
try {
sails = require('sails');
} catch (e) {
console.error('To run an app using `node app.js`, you usually need to have a version of `sails` installed in the same directory as your app.');
console.error('To do that, run `npm install sails`');
console.error('');
console.error('Alternatively, if you have sails installed globally (i.e. you did `npm install -g sails`), you can use `sails lift`.');
console.error('When you run `sails lift`, your app will still use a local `./node_modules/sails` dependency if it exists,');
console.error('but if it doesn\'t, the app will run with the global sails instead!');
return;
}
// Try to get `rc` dependency
var rc;
try {
rc = require('rc');
} catch (e0) {
try {
rc = require('sails/node_modules/rc');
} catch (e1) {
console.error('Could not find dependency: `rc`.');
console.error('Your `.sailsrc` file(s) will be ignored.');
console.error('To resolve this, run:');
console.error('npm install rc --save');
rc = function () { return {}; };
}
}
// Initialize Rollbar
var rollbar = require("rollbar");
rollbar.init("MY-ROLLBAR-TOKEN");
// Start server
sails.lift(rc('sails'));
})();
你需要告诉 rollbar 要捕捉什么。如果您刚刚阅读了
上的快速入门// more is required to automatically detect and report errors. // keep reading for details
要报告任何未捕获的异常,您需要:
var options = {
exitOnUncaughtException: true
};
rollbar.handleUncaughtExceptions("POST_SERVER_ITEM_ACCESS_TOKEN", options);
/**
* Built-in Log Configuration
* (sails.config.log)
*
* Configure the log level for your app, as well as the transport
* (Underneath the covers, Sails uses Winston for logging, which
* allows for some pretty neat custom transports/adapters for log messages)
*
* For more information on the Sails logger, check out:
* http://sailsjs.org/#!/documentation/concepts/Logging
*/
var winston = require('winston')
var rollbar = require('rollbar')
var customLogger = new (winston.Logger)({
exitOnError: false, // don't crash on exception
transports: [
new (winston.transports.Console)({
level: 'debug',
handleExceptions: true,
prettyPrint: true,
silent: false,
timestamp: true,
colorize: true,
json: false
}),
new (winston.transports.File)({
filename: 'logs/common.log',
name: 'file.all',
level: 'debug',
maxsize: 1024000,
maxFiles: 10,
handleExceptions: true,
json: false
}),
new (winston.transports.File)({
filename: 'logs/error.log',
name: 'file.error',
level: 'error',
maxsize: 1024000,
maxFiles: 10,
handleExceptions: true,
json: false
})
]
})
if (process.env['ROLLBAR_TOKEN']) {
rollbar.init(process.env['ROLLBAR_TOKEN'], {
environment: process.env['NODE_ENV']
})
customLogger.on('logging', function (transport, level, msg, meta) {
if (transport.name === 'file.error') {
rollbar.reportMessage(msg + meta)
}
})
}
module.exports.log = {
custom: customLogger,
level: 'silly',
inspect: false
}