Virtuin Logging
Overview
Virtuin Logging is used to push logs to AWS CloudWatch to monitor all aspects of active test on workstation.
The logging service logs to two transports Console (stdout/stderr) and CloudWatch. There are 5 levels of logs:
- error ( highest )
- warn
- info
- debug
- silly ( lowest )
By default, Console transport will be used for levels debug and up with debug and error going to stderr.
By default, CloudWatch transport will be used for levels info and up.
Development
Building
yarn run prepublish
Publishing
yarn publish
Usage
Prerequisites
# Install AWS cli
pip install awscli --upgrade --user
# Configure AWS
## Method 1: Prompt
aws configure
## Method 2: No Prompt
echo -ne '
[default]
aws_access_key_id = AWS_ACCESS_KEY_ID
aws_secret_access_key = AWS_SECRET_ACCESS_KEY
' > ~/.aws/credentials
echo -ne '
[default]
region = us-east-2
output = json
' > ~/.aws/config
Installation
# Add package to project
yarn add @samtec-ash/virtuinlogging
Example
es2016 w/ Async/await :
import { VirtuinLogger } from '@samtec-ash/VirtuinLogging';
const logger = new VirtuinLogger();
const config = {
test: {
testUUID: '123456789' // Required
},
station: {
name: 'StationDebug', // Required
debug: true // Optional
},
dut: {
partNumber: 'P12345', // Optional
serialNumber: 'S12345' // Optional
}
};
let success;
if (await logger.open(config)) {
success = await logger.log('Connected to CloudWatch Logs!', 'info');
success = await logger.log('Some warning message', 'warn');
const status = logger.status();
logger.clear();
success = await logger.close();
console.log("Done!");
}
es2015:
"use strict";
var _VirtuinLogging = require("@samtec-ash/VirtuinLogging");
var logger = new _VirtuinLogging.VirtuinLogger();
var config = {
test: {
testUUID: "123456789" // Required
},
station: {
name: "debug_station", // Required
debug: true // Optional
},
dut: {
partNumber: "P12345", // Optional
serialNumber: "S12345" // Optional
}
};
Promise.resolve()
.then(function() {
return logger.open(config);
})
.then(function(rst) {
return logger.log("Connected to CloudWatch Logs!");
})
.then(function(rst) {
return logger.log("Some warning message", "warn");
})
.then(function(rst) {
const status = logger.status();
logger.clear();
return logger.close();
})
.finally(function(rst) {
console.log("Done!");
});
API
The autogenerated API can be accessed in following mediums: