1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-02-21 07:29:37 +01:00

refactor: add levels file

This commit is contained in:
Juan Picado @jotadeveloper 2019-07-20 19:54:33 +02:00
parent 3beb57f7f6
commit 263f051507
No known key found for this signature in database
GPG Key ID: 15AA875EF3768142
3 changed files with 62 additions and 52 deletions

@ -1,42 +1,19 @@
/* eslint-disable */
import { isObject, pad } from './utils';
import { pad } from './utils';
import { fillInMsgTemplate } from './logger/parser';
import {calculateLevel, levels, subsystems} from "./logger/levels";
const cluster = require('cluster');
const Logger = require('bunyan');
const Error = require('http-errors');
const Stream = require('stream');
const { red, yellow, cyan, magenta, green, white, black, blue } = require('kleur');
const { red, yellow, cyan, magenta, green, white } = require('kleur');
const pkgJSON = require('../../package.json');
const _ = require('lodash');
const dayjs = require('dayjs');
/**
* Match the level based on buyan severity scale
* @param {*} x severity level
* @return {String} security level
*/
function calculateLevel(x) {
switch (true) {
case x < 15:
return 'trace';
case x < 25:
return 'debug';
case x < 35:
return 'info';
case x == 35:
return 'http';
case x < 45:
return 'warn';
case x < 55:
return 'error';
default:
return 'fatal';
}
}
/**
* A RotatingFileStream that modifes the message first
*/
@ -161,17 +138,6 @@ function setup(logs) {
// this part was converted to coffee-script and back again over the years,
// so it might look weird
// level to color
const levels = {
fatal: red,
error: red,
warn: yellow,
http: magenta,
info: cyan,
debug: green,
trace: white,
};
let max = 0;
for (const l in levels) {
if (Object.prototype.hasOwnProperty.call(levels, l)) {
@ -193,20 +159,7 @@ for (const l in levels) {
}
const finalMessage = fillInMsgTemplate(msg, obj, colors);
const subsystems = [
{
in: green('<--'),
out: yellow('-->'),
fs: black('-=-'),
default: blue('---'),
},
{
in: '<--',
out: '-->',
fs: '-=-',
default: '---',
},
];
const sub = subsystems[colors ? 0 : 1][obj.sub] || subsystems[+!colors].default;
if (colors) {

51
src/lib/logger/levels.ts Normal file

@ -0,0 +1,51 @@
import { yellow, green, black, blue, red, magenta, cyan, white } from 'kleur';
// level to color
export const levels = {
fatal: red,
error: red,
warn: yellow,
http: magenta,
info: cyan,
debug: green,
trace: white,
};
/**
* Match the level based on buyan severity scale
* @param {*} x severity level
* @return {String} security level
*/
export function calculateLevel(x) {
switch (true) {
case x < 15:
return 'trace';
case x < 25:
return 'debug';
case x < 35:
return 'info';
case x == 35:
return 'http';
case x < 45:
return 'warn';
case x < 55:
return 'error';
default:
return 'fatal';
}
}
export const subsystems = [
{
in: green('<--'),
out: yellow('-->'),
fs: black('-=-'),
default: blue('---'),
},
{
in: '<--',
out: '-->',
fs: '-=-',
default: '---',
},
];

@ -8,7 +8,13 @@ jest.mock('kleur', () => {
// we emulate colors with this pattern color[msg]
return {
green: r => `g[${r}]`,
red: r => `r[${r}]`
yellow: r => `y[${r}]`,
black: r => `b[${r}]`,
blue: r => `bu[${r}]`,
red: r => `r[${r}]`,
cyan: r => `c[${r}]`,
magenta: r => `m[${r}]`,
white: r => `w[${r}]`,
}
});