An unofficial wrapper for using Rapid7 insightOps logs (former LogEntries) with Dart.
This package is using logging package to do the actual logging, and implements a handler to post the message to insightOps.
Setting up
Set up a new log by following the instructions, copy a URL that you will use to send your log data to.
Usage
A simple usage example:
import 'package:insightops_dart/insightops_dart.dart';
import 'package:logging/logging.dart';
main() {
// Create handler and pass the URL from log settings.
final handler = InsightOpsLogger('__LOG_URL__');
// Define settings for the logger.
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen(handler);
// Create logger.
final logger = Logger('Test logger');
// Log info message.
logger.info('test message');
// Log errors with stacktrace.
try {
throw Error();
} catch (e, stackTrace) {
logger.severe('Test failure', e, stackTrace);
}
}
Update body of the message
You can optionally pass transformBody
parameter to the constructor. This method will be called with each request with
the body of the message. You can use it to update the body:
final handler = InsightOpsLogger(
'__LOG_URL__',
transformBody: (body) async =>
{
'meta': {'deviceId': 'ID'},
...body,
},
);
Features and bugs
Please file feature requests and bugs at the issue tracker.