@Sayfex

Как сохранять логи консоли в отдельный файл?

У меня есть Дискорд Бот на Node JS и надо сохранять логи в отдельный файл. Как это можно сделать?5ffda09c53356423112165.png
  • Вопрос задан
  • 1841 просмотр
Решения вопроса 2
@DimaIs
Можно написать свой логгер, представляющий из себя по сути обертку над записью в файл, которую потом можно импортировать куда угодно, а можно воспользоваться готовыми библиотеками с множеством настроек, например:
Winston
Также возможно будет полезно почитать про ротацию логов, у винстона для этого есть расширение:
winstion-log-rotation
Ответ написан
Комментировать
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
let Console = process.openStdin()
Console.addListener("data", res => {
    let content = res.toString().trim().split(/ +/g) // контент в консоли
    // . . . запись контента в какой-либо файл . . .  //
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Есть варинат намного проще и целесообразнее. При ошибке или исполнении любой команды в конце вы можете прописать даннык код:
const fs = require('fs');

    var currentdate = new Date(); 
    var datetime = "Время: " + currentdate.getDate() + "/"
        + (currentdate.getMonth()+1)  + "/" 
        + currentdate.getFullYear() + " | "  
        + currentdate.getHours() + ":"  
        + currentdate.getMinutes() + ":" 
        + currentdate.getSeconds();

    let info = `Канал: ${message.channel.id} - ${message.author.tag} забанил ${puser.user.tag} навечно, по причине ${reason}.`
    fs.appendFileSync("logs.txt","\n"+`${datetime}`+` ${info}`);

Данный код - пример для команды бана, который выводит событие именно так, как задано в переменной info. Обязательно же должен быть указан файл для записи; каждое событие будет вноситься с новой строчки! Такое же можно проделать и с выводом ошибок! Надеюсь вам пригодилось :)
Ответ написан
@rPman
Если нужно сохранить вывод приложения в файл, то запускать его можно просто указав перенаправления через системные пайпы:
node myprog.js > myprog.log 2>myprog.err
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы