Compare commits

...

4 Commits

Author SHA1 Message Date
a604b8e375 2.0.27 2020-06-08 20:39:43 +00:00
2cc3e6c906 fix(core): update 2020-06-08 20:39:40 +00:00
5a475260dd 2.0.26 2020-06-08 18:51:12 +00:00
9c79a26d04 fix(core): update 2020-06-08 18:51:11 +00:00
7 changed files with 69 additions and 12 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartlog",
"version": "2.0.25",
"version": "2.0.27",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartlog",
"version": "2.0.25",
"version": "2.0.27",
"private": false,
"description": "minimalistic distributed and extensible logging tool",
"keywords": [

View File

@ -1,24 +1,43 @@
import { expect, tap } from '@pushrocks/tapbundle';
import * as smartlog from '../ts/index';
let defaultLogger: smartlog.Smartlog;
let testConsoleLog: smartlog.ConsoleLog;
let testSmartLog: smartlog.Smartlog;
tap.test('should produce a valid ConsoleLog instance', async () => {
testConsoleLog = new smartlog.ConsoleLog();
testConsoleLog.log('ok', 'this is ok');
})
tap.test('should produce instance of Smartlog', async () => {
defaultLogger = smartlog.defaultLogger;
expect(defaultLogger).to.be.instanceOf(smartlog.Smartlog);
testSmartLog = new smartlog.Smartlog({
logContext: {
environment: 'test',
runtime: 'node',
zone: 'gitzone',
company: 'Lossless GmbH',
companyunit: 'Lossless Cloud',
containerName: 'testing'
}
});
});
tap.test('should enable console logging', async () => {
defaultLogger.enableConsole({
testSmartLog.enableConsole({
captureAll: true
});
console.log('this is a normal log that should be captured');
console.log(new Error('hi there'));
defaultLogger.log('info', 'this should only be printed once');
testSmartLog.log('info', 'this should only be printed once');
});
tap.test('should be able to log things', async () => {
defaultLogger.log('silly', 'hi');
testSmartLog.log('silly', 'hi');
});
tap.test('should create a log group', async () => {
const logGroup = testSmartLog.createLogGroup('some cool transaction');
logGroup.log('info', 'this is logged from a log group');
})
tap.start();

View File

@ -1,4 +1,6 @@
import * as plugins from './smartlog.plugins';
import { ConsoleLog } from './smartlog.classes.consolelog';
import { LogGroup } from './smartlog.classes.loggroup';
import { Smartlog } from './smartlog.classes.smartlog';
export { Smartlog };
export { ConsoleLog, LogGroup, Smartlog };

View File

@ -0,0 +1,10 @@
import * as plugins from './smartlog.plugins';
/**
* a console log optimized for smartlog
*/
export class ConsoleLog {
public log(logLevelArg: plugins.smartlogInterfaces.TLogLevel, logMessageArg: string) {
console.log(`__# ${logLevelArg}: ${logMessageArg}`);
}
}

View File

@ -1,3 +1,24 @@
import * as plugins from './smartlog.plugins';
import { Smartlog } from './smartlog.classes.smartlog';
export class LogGroup {}
export class LogGroup {
public smartlogRef: Smartlog;
public transactionId: string;
public groupId = plugins.isounique.uni();
constructor(smartlogInstance: Smartlog, transactionIdArg: string) {
this.smartlogRef = smartlogInstance;
this.transactionId = transactionIdArg;
}
public log(logLevelArg: plugins.smartlogInterfaces.TLogLevel, logMessageArg: string, logDataArg?: any) {
this.smartlogRef.log(logLevelArg, logMessageArg, logDataArg, {
id: plugins.isounique.uni(),
type: 'none',
group: this.groupId,
instance: this.smartlogRef.uniInstanceId,
transaction: this.transactionId
});
}
}

View File

@ -1,6 +1,7 @@
import * as plugins from './smartlog.plugins';
import { LogRouter } from './smartlog.classes.logrouter';
import { LogGroup } from '.';
export interface ISmartlogContructorOptions {
logContext: plugins.smartlogInterfaces.ILogContext;
@ -11,7 +12,7 @@ export class Smartlog implements plugins.smartlogInterfaces.ILogDestination {
private logContext: plugins.smartlogInterfaces.ILogContext;
private minimumLogLevel: plugins.smartlogInterfaces.TLogLevel;
private uniInstanceId: string = plugins.isounique.uni();
public uniInstanceId: string = plugins.isounique.uni();
private consoleEnabled: boolean;
@ -34,7 +35,7 @@ export class Smartlog implements plugins.smartlogInterfaces.ILogDestination {
* enables console logging
*/
public enableConsole(optionsArg?: { captureAll: boolean }) {
if (optionsArg && optionsArg.captureAll) {
if (process && optionsArg && optionsArg.captureAll) {
const write = process.stdout.write;
/* import * as fs from 'fs';
const fileStream = fs.createWriteStream(plugins.path.join(paths.nogitDir, 'output.txt'), {
@ -127,4 +128,8 @@ export class Smartlog implements plugins.smartlogInterfaces.ILogDestination {
`LOG => ${new Date().getHours()}:${new Date().getMinutes()}:${new Date().getSeconds()} => ${logLine}`
);
}
public createLogGroup(transactionId: string = 'none') {
return new LogGroup(this, transactionId);
}
}