mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
- Add JSDoc comments across frontend and backend modules - Improve code readability and maintainability with consistent documentation style - Document Electron IPC handlers, UI utilities, and theme system - Add missing function/class documentation in theme loader and app services - Minor structural improvements and cleanup across Electron main process modules - Minor fixes on variable names
71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
const { createLogger, format, transports } = require("winston");
|
|
const DailyRotateFile = require("winston-daily-rotate-file");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const os = require("os");
|
|
const config = require("../config");
|
|
|
|
// Logs folder in Windows
|
|
const logDir = path.join(os.homedir(), "AppData", "Local", "FreedomLoader", "logs");
|
|
|
|
// Create "Logs" folder if needed
|
|
try {
|
|
fs.mkdirSync(logDir, { recursive: true });
|
|
} catch (error) {
|
|
console.error(`Failed to create log directory: ${error.message}`);
|
|
}
|
|
|
|
const logFormat = format.combine(
|
|
format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
format.printf(({ timestamp, level, message }) => `${timestamp} | ${level.toUpperCase()} | ${message}`)
|
|
);
|
|
|
|
/**
|
|
* Logger Instance with differents types
|
|
* - info
|
|
* - error
|
|
* - warn
|
|
*
|
|
* You need to specify the text that need to be displayed
|
|
* @param string
|
|
*/
|
|
const logger = createLogger({
|
|
level: "info",
|
|
format: logFormat,
|
|
transports: [
|
|
new DailyRotateFile({
|
|
dirname: logDir,
|
|
filename: "LOGS-%DATE%.log",
|
|
datePattern: "YYYY-MM-DD",
|
|
zippedArchive: false,
|
|
maxFiles: "7d",
|
|
format: logFormat,
|
|
options: { flags: "a" },
|
|
}),
|
|
new transports.Console({
|
|
format: logFormat,
|
|
}),
|
|
],
|
|
});
|
|
|
|
/**
|
|
* Start Log Session
|
|
*/
|
|
function logSessionStart() {
|
|
logger.info(`--- Starting session: ${new Date().toISOString()} ---`);
|
|
logger.info(`Application Version: ${config.version}`)
|
|
}
|
|
|
|
/**
|
|
* Stop Log Session
|
|
*/
|
|
function logSessionEnd() {
|
|
logger.info(`--- Ending session: ${new Date().toISOString()} ---`);
|
|
}
|
|
|
|
module.exports = {
|
|
logger,
|
|
logSessionStart,
|
|
logSessionEnd,
|
|
logDir,
|
|
}; |