Initial commit

This commit is contained in:
Arne
2023-04-02 20:35:10 +02:00
parent 80ffb8b70c
commit 7611f10b1c
55 changed files with 1678 additions and 683 deletions

View File

@@ -0,0 +1,121 @@
import { app } from 'electron';
import * as os from 'node:os';
import * as path from 'node:path';
import * as winston from 'winston';
export class Logger {
constructor() {
/**
* Custom winston file format
* Write JSON logs with given format :
* `${timestamp} ${level} : ${info.message} : ${meta})`
*/
this.fileFormat = winston.format.printf((data) => {
return JSON.stringify(this.prepareLogData(data));
});
/**
* Custom winston console format
* Write logs with given format :
* `${timestamp} ${level} : ${info.message} : JSON.stringify({ ...meta }) `
*/
this.consoleFormat = winston.format.printf((data) => {
const preparedData = this.prepareLogData(data);
return (
`${preparedData.timestamp} ${preparedData.level} : ` +
`${preparedData.message} : ${JSON.stringify(preparedData.meta)}`
);
});
this.prepareLogData = (data) => {
const additionalData = Object.assign({}, data);
delete additionalData.timestamp;
delete additionalData.level;
delete additionalData.message;
delete additionalData.service;
return {
timestamp: data.timestamp,
level: data.level,
message: data.message,
meta: additionalData,
};
};
this._logger = winston.createLogger({
level: 'debug',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [
new winston.transports.File({
filename: this.getLogFilename(),
level: global.appConfig.mainLogLevel,
format: winston.format.combine(
winston.format.timestamp(),
this.fileFormat
),
}),
],
});
// If we're not in production then log also to the `console` with the format:
// `${info.timestamp} ${info.level}: ${info.message} JSON.stringify({ ...rest }) `
if (global.appConfig.configId === 'development') {
this._logger.add(
new winston.transports.Console({
stderrLevels: ['error', 'warn'],
format: winston.format.combine(
winston.format.timestamp(),
this.consoleFormat
),
})
);
}
}
static error(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.error(message, meta);
}
static warn(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.warn(message, meta);
}
static info(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.info(message, meta);
}
static http(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.http(message, meta);
}
static verbose(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.verbose(message, meta);
}
static debug(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.debug(message, meta);
}
static silly(message, ...meta) {
Logger.initSingleton();
Logger.singleton._logger.silly(message, meta);
}
static initSingleton() {
if (!Logger.singleton) {
Logger.singleton = new Logger();
}
}
/**
* Returns log filename with standard path
* In production, returns absolute standard path depending on platform
*/
getLogFilename() {
let filename = global.appConfig.mainLogFile;
if (global.appConfig.configId === 'production') {
const appName = app.getName();
if (process.platform == 'linux') {
filename = `.config/${appName}/${filename}`;
} else if (process.platform == 'darwin') {
filename = `Library/Logs/${appName}/${filename}`;
} else if (process.platform == 'win32') {
filename = `AppData\\Roaming\\${appName}\\${filename}`;
}
}
return path.join(os.homedir(), filename);
}
}
//# sourceMappingURL=logger.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../workspaces/electron-app/main/utils/logger.ts"],"names":[],"mappings":"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"}