From 945182329ebd3d182faf476f59ae5ee2d59e780e Mon Sep 17 00:00:00 2001 From: Lucas Gabriel <90426410+lucmsilva651@users.noreply.github.com> Date: Sun, 2 Jun 2024 01:38:25 -0300 Subject: [PATCH] Logging system added --- src/logger.js | 41 +++++++++++++++++++++++++++++++++++++++++ src/main.js | 14 +++++++------- 2 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 src/logger.js diff --git a/src/logger.js b/src/logger.js new file mode 100644 index 0000000..7a0aea3 --- /dev/null +++ b/src/logger.js @@ -0,0 +1,41 @@ +const fs = require('fs'); +const util = require('util'); + +const logFile = 'log.txt'; +const logStream = fs.createWriteStream(logFile, { flags: 'a' }); + +const getFormattedDate = () => { + const date = new Date(); + const year = date.getFullYear(); + const month = ('0' + (date.getMonth() + 1)).slice(-2); + const day = ('0' + date.getDate()).slice(-2); + const hours = ('0' + date.getHours()).slice(-2); + const minutes = ('0' + date.getMinutes()).slice(-2); + const seconds = ('0' + date.getSeconds()).slice(-2); + return `[${year}-${month}-${day} ${hours}:${minutes}:${seconds}]`; +}; + +const logMessage = async (message) => { + const timestamp = getFormattedDate(); + const formattedMessage = `${timestamp} ${util.format(message)}`; + + process.stdout.write(formattedMessage + '\n'); + + return new Promise((resolve, reject) => { + logStream.write(formattedMessage + '\n', (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +}; + +console.log = (message) => { + logMessage(message).catch(err => { + process.stderr.write(`Error writing to log: ${err}\n`); + }); +}; + +module.exports = logMessage; diff --git a/src/main.js b/src/main.js index bbbc710..051b7f1 100644 --- a/src/main.js +++ b/src/main.js @@ -1,18 +1,18 @@ const TelegramBot = require('node-telegram-bot-api'); const fs = require('fs'); const path = require('path'); -const token = process.env.TGBOT_TOKEN; // config.env +const logMessage = require('./logger'); +const token = process.env.TGBOT_TOKEN; const bot = new TelegramBot(token, { polling: true }); -const commandsPath = path.join(__dirname, 'commands') +const commandsPath = path.join(__dirname, 'commands'); const commandHandlers = {}; -// load all commands fs.readdirSync(commandsPath).forEach(file => { const command = `/${path.parse(file).name}`; - const handler = require(path.join(commandsPath,file)); + const handler = require(path.join(commandsPath, file)); commandHandlers[command] = handler; -}) +}); bot.on('message', (msg) => { const messageText = msg.text; @@ -25,5 +25,5 @@ bot.on('polling_error', (error) => { console.error('Polling error:', error); }); -const date = Date(); -console.log(`INFO: Lynx started at: \n• ${date}\n`) \ No newline at end of file +const date = new Date().toString(); +console.log(`INFO: Lynx started\n`);