Compare commits

..

24 Commits

Author SHA1 Message Date
dc72beaf61 2.0.15 2019-01-28 02:03:12 +01:00
3b706a3b54 fix(core): update 2019-01-28 02:03:11 +01:00
acde7f2204 2.0.14 2019-01-22 12:49:09 +01:00
890d592072 fix(core): update 2019-01-22 12:49:09 +01:00
31d8aa84ec 2.0.13 2019-01-22 12:44:45 +01:00
3050a63323 fix(core): update 2019-01-22 12:44:45 +01:00
9e294ee357 2.0.12 2019-01-18 01:51:22 +01:00
ba19654a5e fix(core): update 2019-01-18 01:51:21 +01:00
0ac464875a 2.0.11 2019-01-16 00:01:20 +01:00
fa074facbb fix(core): update 2019-01-16 00:01:19 +01:00
ac4d466ab4 2.0.10 2019-01-15 23:22:45 +01:00
a0aa3c1122 fix(core): update 2019-01-15 23:22:44 +01:00
5dff4961fb 2.0.9 2018-11-11 01:40:09 +01:00
3a98c2e7d9 fix(core): update 2018-11-11 01:40:08 +01:00
39d08ef53a 2.0.8 2018-11-04 18:21:18 +01:00
74e6bc7a3c fix(core): update 2018-11-04 18:21:18 +01:00
5d0056558a 2.0.7 2018-11-04 15:26:40 +01:00
2b920e2f5e fix(core): update 2018-11-04 15:26:40 +01:00
793cd38381 2.0.6 2018-11-04 14:19:31 +01:00
7a05e4484d fix(api): streamline api 2018-11-04 14:19:31 +01:00
2fe657f5af 2.0.5 2018-11-04 02:41:18 +01:00
5508beae25 fix(core): update 2018-11-04 02:41:18 +01:00
f2c0f1acff 2.0.4 2018-11-03 23:19:15 +01:00
5805cc51a6 fix(core): update 2018-11-03 23:19:15 +01:00
7 changed files with 828 additions and 255 deletions

View File

@ -34,21 +34,34 @@ snyk:
- docker - docker
- notpriv - notpriv
sast:
stage: security
image: registry.gitlab.com/hosttoday/ht-docker-dbase:npmci
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- npmci npm prepare
- npmci npm install
- npmci command npm run build
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
--volume "$PWD:/code"
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
artifacts:
reports:
sast: gl-sast-report.json
tags:
- docker
- priv
# ==================== # ====================
# test stage # test stage
# ==================== # ====================
testLEGACY:
stage: test
script:
- npmci npm prepare
- npmci node install legacy
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
allow_failure: true
testLTS: testLTS:
stage: test stage: test
@ -135,13 +148,3 @@ pages:
paths: paths:
- public - public
allow_failure: true allow_failure: true
windowsCompatibility:
image: stefanscherer/node-windows:10-build-tools
stage: metadata
script:
- npm install & npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- windows
allow_failure: true

View File

@ -1,4 +1,15 @@
{ {
"gitzone": {
"module": {
"githost": "gitlab.com",
"gitscope": "pushrocks",
"gitrepo": "smartlog",
"shortDescription": "minimalistic distributed and extensible logging tool",
"npmPackagename": "@pushrocks/smartlog",
"license": "MIT",
"projectDomain": "push.rocks"
}
},
"npmci": { "npmci": {
"npmGlobalTools": [], "npmGlobalTools": [],
"npmAccessLevel": "public" "npmAccessLevel": "public"

843
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartlog", "name": "@pushrocks/smartlog",
"version": "2.0.3", "version": "2.0.15",
"private": false, "private": false,
"description": "winston based logger for large scale projects", "description": "winston based logger for large scale projects",
"main": "dist/index.js", "main": "dist/index.js",
@ -13,15 +13,15 @@
"format": "(gitzone format)" "format": "(gitzone format)"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.0.22", "@gitzone/tsbuild": "^2.1.4",
"@gitzone/tsrun": "^1.1.13", "@gitzone/tsrun": "^1.1.17",
"@gitzone/tstest": "^1.0.15", "@gitzone/tstest": "^1.0.18",
"@pushrocks/tapbundle": "^3.0.7", "@pushrocks/tapbundle": "^3.0.7",
"@types/node": "^10.12.1", "@types/node": "^10.12.18",
"tslint": "^5.11.0", "tslint": "^5.12.1",
"tslint-config-prettier": "^1.15.0" "tslint-config-prettier": "^1.17.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/smartlog-interfaces": "^1.0.9" "@pushrocks/smartlog-interfaces": "^2.0.5"
} }
} }

View File

@ -1,23 +1,17 @@
# smartlog # smartlog
minimalistic distributed and extensible logging tool
winston based logger for large scale projects ## Availabililty and Links
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartlog)
## Availabililty * [gitlab.com (source)](https://gitlab.com/pushrocks/smartlog)
* [github.com (source mirror)](https://github.com/pushrocks/smartlog)
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartlog) * [docs (typedoc)](https://pushrocks.gitlab.io/smartlog/)
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smartlog)
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartlog)
[![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartlog/)
## Status for master ## Status for master
[![build status](https://gitlab.com/pushrocks/smartlog/badges/master/build.svg)](https://gitlab.com/pushrocks/smartlog/commits/master)
[![build status](https://GitLab.com/pushrocks/smartlog/badges/master/build.svg)](https://GitLab.com/pushrocks/smartlog/commits/master) [![coverage report](https://gitlab.com/pushrocks/smartlog/badges/master/coverage.svg)](https://gitlab.com/pushrocks/smartlog/commits/master)
[![coverage report](https://GitLab.com/pushrocks/smartlog/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smartlog/commits/master) [![npm downloads per month](https://img.shields.io/npm/dm/@pushrocks/smartlog.svg)](https://www.npmjs.com/package/@pushrocks/smartlog)
[![npm downloads per month](https://img.shields.io/npm/dm/smartlog.svg)](https://www.npmjs.com/package/smartlog) [![Known Vulnerabilities](https://snyk.io/test/npm/@pushrocks/smartlog/badge.svg)](https://snyk.io/test/npm/@pushrocks/smartlog)
[![Dependency Status](https://david-dm.org/pushrocks/smartlog.svg)](https://david-dm.org/pushrocks/smartlog)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartlog/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartlog/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/pushrocks/smartlog/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartlog)
[![Known Vulnerabilities](https://snyk.io/test/npm/smartlog/badge.svg)](https://snyk.io/test/npm/smartlog)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
@ -26,9 +20,58 @@ winston based logger for large scale projects
Use TypeScript for best in class instellisense. Use TypeScript for best in class instellisense.
For further information read the linked docs at the top of this README. smartlog id s minimal logging package that provides a consistent experience across the complete logging stack. Smartlog allows you to create a logger instance like this:
```ts
import { Smartlog } from '@pushrocks/smartlog';
const logger = new Smartlog({
{
company?: 'My awesome company',
companyunit?: 'my awesome cloud team',
containerName?: 'awesome-container',
environment: TEnvironment: 'kubernetes-production',
runtime: 'node',
zone: 'zone x'
}
})
logger.log('silly', `a silly statement`); // log levels are shown to you by the IDE
```
There is also a default logger available that you can use:
```ts
import { Smartlog, defaultLogger } from '@pushrocks/smartlog';
export class MyAwesomeClass {
constructor(public logger: Smartlog = defaultLogger) {
// what happens here that a instance of this class will have instance.logger available
// if you set a custom logger, than that will be used, if not the default logger.
}
}
```
### Destinations
smartlog supports different kinds of destinations.
The following destinations are available:
- [@pushrocks/smartlog-destination-local](https://www.npmjs.com/package/@pushrocks/smartlog-destination-local) - outputs logs to the local console in a colorful, nice to read way.
- [@pushrocks/smartlog-destination-devtools](https://www.npmjs.com/package/@pushrocks/smartlog-destination-devtools) - outputs logs into the browser console in a colorful, nice to read way.
- [@pushrocks/smartlog-destination-receiver](https://www.npmjs.com/package/@pushrocks/smartlog-destination-receiver) - sends logs to a smartlog receiver (more about that below)
- [@mojoio/scalyr](https://www.npmjs.com/package/@pushrocks/smartlog-destination-receiver) - an scalyr API package that comes with a smartlog log destination included
- [@mojoio/elasticsearch](https://www.npmjs.com/package/@mojoio/elasticsearch) - an elasticsearch API package that comes with a smartlog destination included
### Adding a log destination
```
// TBD
```
For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks) [![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks)

View File

@ -11,4 +11,6 @@ const defaultLogger: Smartlog = new Smartlog({
} }
}); });
defaultLogger.enableConsole();
export { Smartlog, defaultLogger }; export { Smartlog, defaultLogger };

View File

@ -1,7 +1,15 @@
import * as plugins from './smartlog.plugins'; import * as plugins from './smartlog.plugins';
// interfaces // interfaces
import { TEnvironment, ILogContext, TLogLevel, TRuntime } from '@pushrocks/smartlog-interfaces'; import {
TLogType,
TEnvironment,
ILogContext,
TLogLevel,
TRuntime,
ILogDestination,
ILogPackage
} from '@pushrocks/smartlog-interfaces';
import { LogRouter } from './smartlog.classes.logrouter'; import { LogRouter } from './smartlog.classes.logrouter';
@ -16,16 +24,17 @@ export class Smartlog {
private consoleEnabled: boolean; private consoleEnabled: boolean;
public logRouter = new LogRouter(); private logRouter = new LogRouter();
public addLogDestination = this.logRouter.addLogDestination; public addLogDestination(logDestinationArg: ILogDestination) {
this.logRouter.addLogDestination(logDestinationArg);
}
constructor(optionsArg: ISmartlogContructorOptions) { constructor(optionsArg: ISmartlogContructorOptions) {
this.logContext = optionsArg.logContext; this.logContext = optionsArg.logContext;
this.minimumLogLevel = optionsArg.minimumLogLevel; this.minimumLogLevel = optionsArg.minimumLogLevel;
} }
// ============ // ============
// Logger Setup // Logger Setup
// ============ // ============
@ -37,48 +46,48 @@ export class Smartlog {
this.consoleEnabled = true; this.consoleEnabled = true;
} }
/**
* set a minimum serverity level to log
* @param levelArg
*/
level(levelArg: TLogLevel) {}
// ============= // =============
// log functions // log functions
// ============= // =============
/** /**
* log stuff * main log method
* @param logLevelArg * @param logLevelArg - the log level
* @param logMessageArg * @param logMessageArg - the log message
* @param logDataArg - any additional log data
*/ */
public log(logLevelArg: TLogLevel, logMessageArg: string) { public log(logLevelArg: TLogLevel, logMessageArg: string, logDataArg?: any) {
if (this.consoleEnabled) { if (this.consoleEnabled) {
console.log(`${logLevelArg}: ${logMessageArg}`); console.log(
`LOG => ${new Date().getHours()}:${new Date().getMinutes()}:${new Date().getSeconds()} => ${logLevelArg}: ${logMessageArg}`
);
}
const logPackage: ILogPackage = {
timestamp: Date.now(),
type: 'log',
context: this.logContext,
level: logLevelArg,
message: logMessageArg
};
if (logDataArg) {
logPackage.data = logDataArg;
}
this.logRouter.routeLog(logPackage);
}
public increment(logLevelArg: TLogLevel, logMessageArg) {
if (this.consoleEnabled) {
console.log(`INCREMENT: ${logLevelArg}: ${logMessageArg}`);
} }
this.logRouter.routeLog({ this.logRouter.routeLog({
logContext: this.logContext, timestamp: Date.now(),
logLevel: logLevelArg, type: 'increment',
context: this.logContext,
level: logLevelArg,
message: logMessageArg message: logMessageArg
}); });
} }
public silly(logMessageArg: string) { public handleLogPackage(logPackageArg: ILogPackage) {
this.log('silly', logMessageArg); this.logRouter.routeLog(logPackageArg);
}
public debug(logMessageArg) {
this.log('debug', logMessageArg);
}
public info(logMessageArg: string) {
this.log('info', logMessageArg);
}
public warn(logMessageArg) {
this.log('warn', logMessageArg);
}
public error(logMessageArg) {
this.log('error', logMessageArg);
} }
} }