Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
7ec6579cc3 | |||
0c6240ae60 | |||
5d9fb7c25a | |||
6ee63d1e96 | |||
e648a787e5 | |||
96bc87ecbd | |||
de81a174f8 | |||
027216914d | |||
34cc6cbed5 | |||
0bcca99349 | |||
dc72beaf61 | |||
3b706a3b54 | |||
acde7f2204 | |||
890d592072 | |||
31d8aa84ec | |||
3050a63323 | |||
9e294ee357 | |||
ba19654a5e | |||
0ac464875a | |||
fa074facbb | |||
ac4d466ab4 | |||
a0aa3c1122 | |||
5dff4961fb | |||
3a98c2e7d9 | |||
39d08ef53a | |||
74e6bc7a3c |
@ -34,21 +34,34 @@ snyk:
|
||||
- docker
|
||||
- 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
|
||||
# ====================
|
||||
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:
|
||||
stage: test
|
||||
@ -135,13 +148,3 @@ pages:
|
||||
paths:
|
||||
- public
|
||||
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
|
||||
|
19
license
Normal file
19
license
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2018 Lossless GmbH (hello@lossless.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -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": {
|
||||
"npmGlobalTools": [],
|
||||
"npmAccessLevel": "public"
|
||||
|
1655
package-lock.json
generated
1655
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -1,27 +1,35 @@
|
||||
{
|
||||
"name": "@pushrocks/smartlog",
|
||||
"version": "2.0.7",
|
||||
"version": "2.0.20",
|
||||
"private": false,
|
||||
"description": "winston based logger for large scale projects",
|
||||
"description": "minimalistic distributed and extensible logging tool",
|
||||
"keywords": [
|
||||
"logging",
|
||||
"centralized logging",
|
||||
"json logging",
|
||||
"scalyr",
|
||||
"elasticsearch",
|
||||
"logdna"
|
||||
],
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
"author": "Lossless GmbH",
|
||||
"license": "UNLICENSED",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "(tstest test/)",
|
||||
"build": "(tsbuild)",
|
||||
"format": "(gitzone format)"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.0.22",
|
||||
"@gitzone/tsrun": "^1.1.13",
|
||||
"@gitzone/tstest": "^1.0.15",
|
||||
"@pushrocks/tapbundle": "^3.0.7",
|
||||
"@types/node": "^10.12.2",
|
||||
"tslint": "^5.11.0",
|
||||
"tslint-config-prettier": "^1.15.0"
|
||||
"@gitzone/tsbuild": "^2.1.17",
|
||||
"@gitzone/tsrun": "^1.2.8",
|
||||
"@gitzone/tstest": "^1.0.28",
|
||||
"@pushrocks/tapbundle": "^3.0.13",
|
||||
"@types/node": "^12.11.2",
|
||||
"tslint": "^5.20.0",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pushrocks/smartlog-interfaces": "^2.0.1"
|
||||
"@pushrocks/smartlog-interfaces": "^2.0.5"
|
||||
}
|
||||
}
|
||||
|
85
readme.md
85
readme.md
@ -1,34 +1,77 @@
|
||||
# smartlog
|
||||
# @pushrocks/smartlog
|
||||
minimalistic distributed and extensible logging tool
|
||||
|
||||
winston based logger for large scale projects
|
||||
|
||||
## Availabililty
|
||||
|
||||
[](https://www.npmjs.com/package/smartlog)
|
||||
[](https://GitLab.com/pushrocks/smartlog)
|
||||
[](https://github.com/pushrocks/smartlog)
|
||||
[](https://pushrocks.gitlab.io/smartlog/)
|
||||
## Availabililty and Links
|
||||
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartlog)
|
||||
* [gitlab.com (source)](https://gitlab.com/pushrocks/smartlog)
|
||||
* [github.com (source mirror)](https://github.com/pushrocks/smartlog)
|
||||
* [docs (typedoc)](https://pushrocks.gitlab.io/smartlog/)
|
||||
|
||||
## Status for master
|
||||
|
||||
[](https://GitLab.com/pushrocks/smartlog/commits/master)
|
||||
[](https://GitLab.com/pushrocks/smartlog/commits/master)
|
||||
[](https://www.npmjs.com/package/smartlog)
|
||||
[](https://david-dm.org/pushrocks/smartlog)
|
||||
[](https://www.bithound.io/github/pushrocks/smartlog/master/dependencies/npm)
|
||||
[](https://www.bithound.io/github/pushrocks/smartlog)
|
||||
[](https://snyk.io/test/npm/smartlog)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://gitlab.com/pushrocks/smartlog/commits/master)
|
||||
[](https://gitlab.com/pushrocks/smartlog/commits/master)
|
||||
[](https://www.npmjs.com/package/@pushrocks/smartlog)
|
||||
[](https://snyk.io/test/npm/@pushrocks/smartlog)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](http://standardjs.com/)
|
||||
|
||||
## Usage
|
||||
|
||||
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: '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)
|
||||
> | 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)
|
||||
|
||||
[](https://push.rocks)
|
||||
|
@ -11,4 +11,6 @@ const defaultLogger: Smartlog = new Smartlog({
|
||||
}
|
||||
});
|
||||
|
||||
defaultLogger.enableConsole();
|
||||
|
||||
export { Smartlog, defaultLogger };
|
||||
|
@ -1,24 +1,21 @@
|
||||
import * as plugins from './smartlog.plugins';
|
||||
|
||||
// interfaces
|
||||
import { TLogType, TEnvironment, ILogContext, TLogLevel, TRuntime, ILogDestination } from '@pushrocks/smartlog-interfaces';
|
||||
|
||||
import { LogRouter } from './smartlog.classes.logrouter';
|
||||
|
||||
export interface ISmartlogContructorOptions {
|
||||
logContext: ILogContext;
|
||||
minimumLogLevel?: TLogLevel;
|
||||
logContext: plugins.smartlogInterfaces.ILogContext;
|
||||
minimumLogLevel?: plugins.smartlogInterfaces.TLogLevel;
|
||||
}
|
||||
|
||||
export class Smartlog {
|
||||
private logContext: ILogContext;
|
||||
private minimumLogLevel: TLogLevel;
|
||||
private logContext: plugins.smartlogInterfaces.ILogContext;
|
||||
private minimumLogLevel: plugins.smartlogInterfaces.TLogLevel;
|
||||
|
||||
private consoleEnabled: boolean;
|
||||
|
||||
private logRouter = new LogRouter();
|
||||
|
||||
public addLogDestination (logDestinationArg: ILogDestination) {
|
||||
public addLogDestination(logDestinationArg: plugins.smartlogInterfaces.ILogDestination) {
|
||||
this.logRouter.addLogDestination(logDestinationArg);
|
||||
}
|
||||
|
||||
@ -27,7 +24,6 @@ export class Smartlog {
|
||||
this.minimumLogLevel = optionsArg.minimumLogLevel;
|
||||
}
|
||||
|
||||
|
||||
// ============
|
||||
// Logger Setup
|
||||
// ============
|
||||
@ -35,7 +31,7 @@ export class Smartlog {
|
||||
/**
|
||||
* enables console logging
|
||||
*/
|
||||
enableConsole() {
|
||||
public enableConsole() {
|
||||
this.consoleEnabled = true;
|
||||
}
|
||||
|
||||
@ -43,31 +39,44 @@ export class Smartlog {
|
||||
// log functions
|
||||
// =============
|
||||
/**
|
||||
* log stuff
|
||||
* @param logLevelArg
|
||||
* @param logMessageArg
|
||||
* main log method
|
||||
* @param logLevelArg - the log level
|
||||
* @param logMessageArg - the log message
|
||||
* @param logDataArg - any additional log data
|
||||
*/
|
||||
public log(logLevelArg: TLogLevel, logMessageArg: string) {
|
||||
public log(logLevelArg: plugins.smartlogInterfaces.TLogLevel, logMessageArg: string, logDataArg?: any) {
|
||||
if (this.consoleEnabled) {
|
||||
console.log(`LOG: ${logLevelArg}: ${logMessageArg}`);
|
||||
console.log(
|
||||
`LOG => ${new Date().getHours()}:${new Date().getMinutes()}:${new Date().getSeconds()} => ${logLevelArg}: ${logMessageArg}`
|
||||
);
|
||||
}
|
||||
this.logRouter.routeLog({
|
||||
const logPackage: plugins.smartlogInterfaces.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) {
|
||||
public increment(logLevelArg: plugins.smartlogInterfaces.TLogLevel, logMessageArg) {
|
||||
if (this.consoleEnabled) {
|
||||
console.log(`INCREMENT: ${logLevelArg}: ${logMessageArg}`);
|
||||
}
|
||||
this.logRouter.routeLog({
|
||||
timestamp: Date.now(),
|
||||
type: 'increment',
|
||||
context: this.logContext,
|
||||
level: logLevelArg,
|
||||
message: logMessageArg
|
||||
});
|
||||
}
|
||||
|
||||
public handleLogPackage(logPackageArg: plugins.smartlogInterfaces.ILogPackage) {
|
||||
this.logRouter.routeLog(logPackageArg);
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,5 @@
|
||||
export {};
|
||||
import * as smartlogInterfaces from '@pushrocks/smartlog-interfaces';
|
||||
|
||||
export {
|
||||
smartlogInterfaces
|
||||
};
|
||||
|
Reference in New Issue
Block a user