This commit is contained in:
Fabian Stamm
2021-05-08 22:11:15 +02:00
parent f01a4ffb21
commit 249f701cb7
5 changed files with 2529 additions and 362 deletions

View File

@ -1,7 +1,7 @@
import { Lock, ObservableInterface } from "@hibas123/utils";
import { Lock } from "@hibas123/utils";
import * as fs from "fs";
import * as path from "path";
import { Adapter, Message, LoggingTypes } from "@hibas123/logging";
import { Adapter, Message, Formatted } from "@hibas123/logging";
const MAX_FILE_SIZE = 500000000;
@ -14,11 +14,10 @@ export class LoggingFiles implements Adapter {
private noPrefix = false
) {}
init(observable: ObservableInterface<Message>) {
observable.subscribe(this.onMessage.bind(this));
init() {
if (!this.file) {
this.file = Files.getFile(this.filename);
return this.file.init(this.maxFileSize);
this.file.init(this.maxFileSize);
}
}
@ -27,16 +26,7 @@ export class LoggingFiles implements Adapter {
}
onMessage(message: Message) {
// Just ignore all non error messages, if this.error is set
if (this.error && message.type !== LoggingTypes.Error) return;
let prefix = "";
if (message.name) prefix = `[${message.name}]=>`;
let txt = message.text.formatted
.map((fmt) => prefix + fmt.map((f) => f.text).join("") + "\n")
.join("");
let msg = Buffer.from(txt);
let msg = Buffer.from(Formatted.strip(message.text) + "\n");
this.file.write(msg);
}
@ -46,6 +36,8 @@ export class LoggingFiles implements Adapter {
}
}
//TODO: Optimise write path
export class Files {
private open = 0;
@ -180,7 +172,7 @@ export class Files {
}
function fsUnlink(path) {
return new Promise((resolve, reject) => {
return new Promise<void>((resolve, reject) => {
fs.unlink(path, (err) => {
if (err) reject(err);
else resolve();
@ -198,7 +190,7 @@ function fsStat(path: string) {
}
function fsMove(oldPath: string, newPath: string) {
return new Promise((resolve, reject) => {
return new Promise<void>((resolve, reject) => {
let callback = (err?) => {
if (err) reject(err);
else resolve();
@ -232,7 +224,7 @@ function fsExists(path: string) {
}
function fsMkDir(path: string) {
return new Promise((resolve, reject) => {
return new Promise<void>((resolve, reject) => {
fs.mkdir(path, (err) => (err ? reject(err) : resolve()));
});
}