Send your browser errors and console message to AWS CLoudWatch
- Login to AWS console
- Open CloudWatch
- Create a Log Group (Set up a retention period to save space)
- Open IAM
- Create a new user with secret and access key
- Assign the user a new policy wich will be able to write logs and create log streams (set your region and log group name):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:AWS_REGION:*:log-group:LOG_GROUP:*:*",
"arn:aws:logs:AWS_REGION:*:log-group:LOG_GROUP"
]
}
]
}- beware that the credentials will be exposed in the browser so don't assign other permissions to this user.
npm:
npm install console-cloud-watch
CDN:
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/console-cloud-watch-all.min.js"></script>dist/console-cloud-watch-all.min.js contains all the dependencies (and a custom build of AWS SDK with only the CloudWatch service),
if you already include AWS SDK you may use dist/dist/console-cloud-watch.min.js directly, note that you have also to include fingerprintjs2 and stacktrace-js
Include console-cloud-watch.js in your page, configure your parameters and you are done. Make sure that AWS, StackTrace, and optionally Fingerprint2 have been required as well:
# ES6
import ConsoleCloudWatch from 'console-cloud-watch';
# ES5
var ConsoleCloudWatch = require('console-cloud-watch');
ConsoleCloudWatch(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, LOG_GROUP);You may also pass 3 optional configuration parameters:
levels(default:['error']): an array of strings with the console levels to intercepttimeout(default:10000): milliseconds between calls to CloudWatchmute(default:false): if set totrue, intercepted message will not be shown in console
Example:
ConsoleCloudWatch(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, LOG_GROUP,['warn','error'],30000,true);