diff --git a/.gitignore b/.gitignore
index b1c07bf..2ef46cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
node_modules/
logs/
-yarn.lock
\ No newline at end of file
+yarn.lock
+out/
\ No newline at end of file
diff --git a/out/index.d.ts b/out/index.d.ts
deleted file mode 100644
index ba3bc69..0000000
--- a/out/index.d.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-///
-import { EventEmitter } from "events";
-export declare const Colors: {
- Reset: string;
- Bright: string;
- Dim: string;
- Underscore: string;
- Blink: string;
- Reverse: string;
- Hidden: string;
- FgBlack: string;
- FgRed: string;
- FgGreen: string;
- FgYellow: string;
- FgBlue: string;
- FgMagenta: string;
- FgCyan: string;
- FgWhite: string;
- BgBlack: string;
- BgRed: string;
- BgGreen: string;
- BgYellow: string;
- BgBlue: string;
- BgMagenta: string;
- BgCyan: string;
- BgWhite: string;
-};
-export interface LoggingBaseOptions {
- /**
- * Name will be prefixed on Console output and added to logfiles, if not specified here
- */
- name: string;
- /**
- * Filename/path of the logfile. Skip if generated with name
- */
- logfile: string;
- /**
- * Filename/path of the logfile. Skip if generated with name
- */
- errorfile: string;
- /**
- * Prints output to console
- */
- console_out: boolean;
-}
-export declare class LoggingBase {
- private config;
- private logFile;
- private errorFile;
- constructor(options?: Partial | string);
- console_out: boolean;
- waitForSetup(): Promise;
- events: EventEmitter;
- debug(...message: any[]): void;
- log(...message: any[]): void;
- warning(...message: any[]): void;
- logWithCustomColors(type: LoggingTypes, colors: string, ...message: any[]): void;
- error(error: Error | string): void;
- errorMessage(...message: any[]): void;
- private message(type, message, customColors?, caller?);
-}
-export declare let Logging: LoggingBase;
-export default Logging;
-export declare enum LoggingTypes {
- Log = 0,
- Warning = 1,
- Error = 2,
- Debug = 3,
-}
diff --git a/out/index.js b/out/index.js
deleted file mode 100644
index 29a72c5..0000000
--- a/out/index.js
+++ /dev/null
@@ -1,397 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const util = require("util");
-const fs = require("fs");
-const events_1 = require("events");
-const path = require("path");
-const lock_1 = require("./lock");
-exports.Colors = {
- Reset: "\x1b[0m",
- Bright: "\x1b[1m",
- Dim: "\x1b[2m",
- Underscore: "\x1b[4m",
- Blink: "\x1b[5m",
- Reverse: "\x1b[7m",
- Hidden: "\x1b[8m",
- FgBlack: "\x1b[30m",
- FgRed: "\x1b[31m",
- FgGreen: "\x1b[32m",
- FgYellow: "\x1b[33m",
- FgBlue: "\x1b[34m",
- FgMagenta: "\x1b[35m",
- FgCyan: "\x1b[36m",
- FgWhite: "\x1b[37m",
- BgBlack: "\x1b[40m",
- BgRed: "\x1b[41m",
- BgGreen: "\x1b[42m",
- BgYellow: "\x1b[43m",
- BgBlue: "\x1b[44m",
- BgMagenta: "\x1b[45m",
- BgCyan: "\x1b[46m",
- BgWhite: "\x1b[47m"
-};
-const maxFileSize = 500000000;
-const OriginalErrorStackFunction = Error.prototype.prepareStackTrace;
-class LoggingFiles {
- constructor(file) {
- this.size = 0;
- this.stream = undefined;
- this.lock = new lock_1.default();
- this.queue = [];
- this.file = path.resolve(file);
- this.init();
- }
- static getFile(filename) {
- filename = path.resolve(filename);
- let file = this.files.find(e => e.file === filename);
- if (!file) {
- file = new LoggingFiles(filename);
- this.files.push(file);
- }
- return file;
- }
- async awaitinit() {
- (await this.lock.getLock()).release();
- }
- async init() {
- let lock = await this.lock.getLock();
- await this.initializeFile();
- lock.release();
- this.checkQueue();
- }
- async initializeFile(new_file = false) {
- try {
- if (this.stream) {
- this.stream.close();
- }
- const folder = path.dirname(this.file);
- if (folder) {
- if (!await fsExists(folder)) {
- await fsMkDir(folder).catch(() => { }); //Could happen, if two seperate instances want to create the same folder so ignoring
- }
- }
- let size = 0;
- if (await fsExists(this.file)) {
- let stats = await fsStat(this.file);
- if (new_file || stats.size >= maxFileSize) {
- if (await fsExists(this.file + ".old"))
- await fsUnlink(this.file + ".old");
- await fsMove(this.file, this.file + ".old");
- }
- else {
- size = stats.size;
- }
- }
- this.stream = fs.createWriteStream(this.file, { flags: "a" });
- this.size = size;
- }
- catch (e) {
- console.log(e);
- //ToDo is this the right behavior?
- process.exit(1);
- }
- }
- async checkQueue() {
- if (this.lock.locked)
- return;
- let lock = await this.lock.getLock();
- let msg;
- while (msg = this.queue.shift()) {
- await this.write_to_file(msg);
- }
- lock.release();
- }
- async write_to_file(data) {
- try {
- if (data.byteLength < maxFileSize && this.size + data.byteLength > maxFileSize) {
- await this.initializeFile(true);
- }
- this.size += data.byteLength;
- this.stream.write(data);
- }
- catch (err) {
- console.error(err);
- this.initializeFile(false);
- this.write_to_file(data);
- }
- }
- write(data) {
- this.queue.push(data);
- this.checkQueue();
- }
-}
-LoggingFiles.files = [];
-class LoggingBase {
- constructor(options) {
- this.events = new events_1.EventEmitter();
- let opt;
- if (!options)
- opt = {};
- else if (typeof options === "string") {
- opt = { name: options };
- }
- else {
- opt = options;
- }
- if (opt.name) {
- if (opt.logfile === undefined) {
- opt.logfile = `./logs/all.${opt.name}.log`;
- }
- if (opt.errorfile === undefined) {
- opt.errorfile = `./logs/error.${opt.name}.log`;
- }
- }
- this.config = Object.assign({
- name: undefined,
- console_out: true,
- logfile: "./logs/all.log",
- errorfile: "./logs/error.log"
- }, opt);
- for (let key in this) {
- if (typeof this[key] === "function")
- this[key] = this[key].bind(this);
- }
- if (this.config.logfile) {
- this.logFile = LoggingFiles.getFile(this.config.logfile);
- }
- if (this.config.errorfile) {
- this.errorFile = LoggingFiles.getFile(this.config.errorfile);
- }
- }
- get console_out() {
- return this.config.console_out;
- }
- set console_out(value) {
- this.config.console_out = value;
- }
- waitForSetup() {
- let w = [];
- if (this.logFile)
- w.push(this.logFile.awaitinit());
- if (this.errorFile)
- w.push(this.errorFile.awaitinit());
- return Promise.all(w);
- }
- debug(...message) {
- this.message(LoggingTypes.Debug, message);
- }
- log(...message) {
- this.message(LoggingTypes.Log, message);
- }
- warning(...message) {
- this.message(LoggingTypes.Warning, message);
- }
- logWithCustomColors(type, colors, ...message) {
- this.message(type, message, colors);
- }
- error(error) {
- if (!error)
- error = "Empty ERROR was passed, so no informations available";
- if (typeof error === "string") {
- let e = new Error();
- this.message(LoggingTypes.Error, [error, "\n", e.stack]);
- }
- else {
- this.message(LoggingTypes.Error, [error.message, "\n", error.stack], undefined, getCallerFromExisting(error));
- }
- }
- errorMessage(...message) {
- this.message(LoggingTypes.Error, message);
- }
- message(type, message, customColors, caller) {
- var consoleLogFormat = exports.Colors.Reset;
- if (!customColors) {
- switch (type) {
- case LoggingTypes.Log:
- //m += FgWhite + BgBlack;
- break;
- case LoggingTypes.Error:
- consoleLogFormat += exports.Colors.FgRed; //FgWhite + BgRed + FgWhite;
- break;
- case LoggingTypes.Debug:
- consoleLogFormat += exports.Colors.FgCyan;
- break;
- case LoggingTypes.Warning:
- consoleLogFormat += exports.Colors.FgYellow;
- break;
- }
- }
- else {
- consoleLogFormat += customColors;
- }
- var mb = "";
- if (typeof message === "string") {
- mb = message;
- }
- else {
- message.forEach((e, i) => {
- if (typeof e !== "string")
- e = util.inspect(e, false, null);
- if (e.endsWith("\n") || i === message.length - 1) {
- mb += e;
- }
- else {
- mb += e + " ";
- }
- });
- }
- let file = caller || getCallerFile();
- let date = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '');
- let prefix = `[${LoggingTypes[type]}][${file.file}:${file.line}][${date}]: `;
- let message_lines = mb.split("\n").map(line => prefix + line);
- if (this.config.console_out) {
- let name = "";
- if (this.config.name)
- name = `[${this.config.name}]`;
- message_lines.forEach(line => console.log(consoleLogFormat + name + line + exports.Colors.Reset));
- }
- let m = message_lines.join("\n");
- m = m.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
- let index = m.indexOf("\x1b");
- while (index >= 0) {
- m = m.substring(0, index) + m.substring(index + 5, m.length);
- index = m.indexOf("\x1b");
- }
- let data = Buffer.from(m + "\n");
- if (type === LoggingTypes.Error && this.errorFile) {
- this.errorFile.write(data);
- }
- if (this.logFile) {
- this.logFile.write(data);
- }
- this.events.emit("message", { type: type, message: m, module: this.config.name });
- }
-}
-exports.LoggingBase = LoggingBase;
-exports.Logging = undefined;
-if (process.env.LOGGING_NO_DEFAULT !== "true") {
- exports.Logging = new LoggingBase();
-}
-exports.default = exports.Logging;
-function fsUnlink(path) {
- return new Promise((resolve, reject) => {
- fs.unlink(path, (err) => {
- if (err)
- reject(err);
- else
- resolve();
- });
- });
-}
-function fsStat(path) {
- return new Promise((resolve, reject) => {
- fs.stat(path, (err, stats) => {
- if (err)
- reject(err);
- else
- resolve(stats);
- });
- });
-}
-function fsMove(oldPath, newPath) {
- return new Promise((resolve, reject) => {
- let callback = (err) => {
- if (err)
- reject(err);
- else
- resolve();
- };
- fs.rename(oldPath, newPath, function (err) {
- if (err) {
- if (err.code === 'EXDEV') {
- copy();
- }
- else {
- callback(err);
- }
- return;
- }
- callback();
- });
- function copy() {
- fs.copyFile(oldPath, newPath, (err) => {
- if (err)
- callback(err);
- else
- fs.unlink(oldPath, callback);
- });
- // var readStream = fs.createReadStream(oldPath);
- // var writeStream = fs.createWriteStream(newPath);
- // readStream.on('error', callback);
- // writeStream.on('error', callback);
- // readStream.on('close', function () {
- // fs.unlink(oldPath, callback);
- // });
- // readStream.pipe(writeStream);
- }
- });
-}
-function fsExists(path) {
- return new Promise((resolve, reject) => {
- fs.exists(path, resolve);
- });
-}
-function fsMkDir(path) {
- return new Promise((resolve, reject) => {
- fs.mkdir(path, (err) => err ? reject(err) : resolve());
- });
-}
-function getStack() {
- // Save original Error.prepareStackTrace
- let origPrepareStackTrace = Error.prepareStackTrace;
- // Override with function that just returns `stack`
- Error.prepareStackTrace = function (_, stack) {
- return stack;
- };
- // Create a new `Error`, which automatically gets `stack`
- let err = new Error();
- // Evaluate `err.stack`, which calls our new `Error.prepareStackTrace`
- let stack = err.stack;
- // Restore original `Error.prepareStackTrace`
- Error.prepareStackTrace = origPrepareStackTrace;
- // Remove superfluous function call on stack
- stack.shift(); // getStack --> Error
- return stack;
-}
-function getCallerFile() {
- try {
- let stack = getStack();
- let current_file = stack.shift().getFileName();
- while (stack.length) {
- let caller_file = stack.shift();
- const util = require("util");
- if (current_file !== caller_file.getFileName())
- return {
- file: path.basename(caller_file.getFileName()),
- line: caller_file.getLineNumber()
- };
- }
- }
- catch (err) { }
- return { file: undefined, line: 0 };
-}
-function getCallerFromExisting(err) {
- let lines = err.stack.split("\n");
- let current = path.basename(__filename);
- lines.shift(); // removing first line
- while (lines.length > 0) {
- let line = lines.shift();
- let matches = line.match(/[a-zA-Z_-]+[.][a-zA-Z_-]+[:][0-9]+/g);
- if (matches && matches.length > 0) {
- let [f, line] = matches[0].split(":");
- if (f != current) {
- return {
- file: f, line: Number(line)
- };
- }
- }
- }
-}
-var LoggingTypes;
-(function (LoggingTypes) {
- LoggingTypes[LoggingTypes["Log"] = 0] = "Log";
- LoggingTypes[LoggingTypes["Warning"] = 1] = "Warning";
- LoggingTypes[LoggingTypes["Error"] = 2] = "Error";
- LoggingTypes[LoggingTypes["Debug"] = 3] = "Debug";
-})(LoggingTypes = exports.LoggingTypes || (exports.LoggingTypes = {}));
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/out/index.js.map b/out/index.js.map
deleted file mode 100644
index 548b808..0000000
--- a/out/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/out/lock.d.ts b/out/lock.d.ts
deleted file mode 100644
index 9f7d876..0000000
--- a/out/lock.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export declare type Release = {
- release: () => void;
-};
-export default class Lock {
- private _locked;
- readonly locked: boolean;
- private toCome;
- constructor();
- getLock(): Promise;
- private lock();
- private release();
-}
diff --git a/out/lock.js b/out/lock.js
deleted file mode 100644
index 3799100..0000000
--- a/out/lock.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-class Lock {
- constructor() {
- this._locked = false;
- this.toCome = [];
- this.release = this.release.bind(this);
- }
- get locked() {
- return this._locked;
- }
- async getLock() {
- if (!this._locked)
- return { release: this.lock() };
- else {
- return new Promise((resolve) => {
- this.toCome.push(() => {
- resolve({ release: this.lock() });
- });
- });
- }
- }
- lock() {
- this._locked = true;
- return this.release;
- }
- async release() {
- if (this.toCome.length > 0) {
- this.toCome.shift()();
- }
- else {
- this._locked = false;
- }
- }
-}
-exports.default = Lock;
-//# sourceMappingURL=lock.js.map
\ No newline at end of file
diff --git a/out/lock.js.map b/out/lock.js.map
deleted file mode 100644
index 9eff807..0000000
--- a/out/lock.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":";;AACA;IAOG;QANQ,YAAO,GAAY,KAAK,CAAC;QAIzB,WAAM,GAAmB,EAAE,CAAC;QAGjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAPD,IAAI,MAAM;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAOD,KAAK,CAAC,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;aAC9C;YACF,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;oBACnB,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAA;YACL,CAAC,CAAC,CAAA;SACJ;IACJ,CAAC;IAEO,IAAI;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;SACxB;aAAM;YACJ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACvB;IACJ,CAAC;CACH;AAlCD,uBAkCC"}
\ No newline at end of file
diff --git a/out/test.d.ts b/out/test.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/out/test.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/out/test.js b/out/test.js
deleted file mode 100644
index e0f03ab..0000000
--- a/out/test.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const index_1 = require("./index");
-const crypto_1 = require("crypto");
-index_1.Logging.log("test");
-index_1.Logging.log("i", "am", { a: "an" }, 1000);
-index_1.Logging.error(new Error("fehler 001"));
-index_1.Logging.debug("Some Debug infos");
-index_1.Logging.errorMessage("i", "am", "an", "error");
-index_1.Logging.log("\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m TEST \x1b[31m\x1b[31m\x1b[31m");
-let err = new Error();
-if (typeof err.stack !== "string")
- console.log("Stacktrace invalid", err.stack);
-let cus = new index_1.LoggingBase({ name: "test" });
-cus.log("Hello from custom Logger");
-let cus2 = new index_1.LoggingBase("test2");
-cus2.log("Hello from custom Logger 2");
-let cus22 = new index_1.LoggingBase("test2");
-cus22.log("Hello from custom Logger 22");
-cus2.log("Hello from custom Logger 2");
-cus22.log("Hello from custom Logger 22");
-cus2.log("Hello from custom Logger 2");
-cus22.log("Hello from custom Logger 22");
-cus2.log("Hello from custom Logger 2");
-cus22.log("Hello from custom Logger 22");
-cus2.log("Hello from custom Logger 2");
-cus22.log("Hello from custom Logger 22");
-cus2.log("Hello from custom Logger 2");
-index_1.Logging.console_out = false;
-async function benchmark(count, message_size) {
- await index_1.Logging.waitForSetup();
- const randData = crypto_1.randomBytes(message_size).toString("hex");
- const t = process.hrtime();
- for (let i = 0; i < count; i++) {
- index_1.Logging.log(randData);
- }
- const diff = process.hrtime(t);
- const NS_PER_SEC = 1e9;
- await index_1.Logging.waitForSetup();
- const ns = diff[0] * NS_PER_SEC + diff[1];
- console.log(`Benchmark took ${ns / 1000000}ms for ${count} messages with a size of ${message_size} characters`);
- console.log(`This is equal to ${(ns / 1000000) / count} ms per message`);
-}
-index_1.Logging.waitForSetup().then(async () => {
- console.log("Large data benchmark:");
- await benchmark(7000, 50000);
- console.log("Realdata data benchmark:");
- await benchmark(100000, 100);
-});
-//# sourceMappingURL=test.js.map
\ No newline at end of file
diff --git a/out/test.js.map b/out/test.js.map
deleted file mode 100644
index 5fcaa95..0000000
--- a/out/test.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file