'use strict'
const winston = require('winston');
/*const winstonDaily = require('winston-daily-rotate-file');*/ // 데일리 로그 사용시
const fs = require('fs');
const path = require('path');
/**
* 게임 패킷 로거
* @type {gamePacketLogger}
*/
const gamePacketLogger = class {
constructor(_serverName, _seq) {
// 로그 남길 서버 이름
this.servername = _serverName;
// 경로 설정
this.dir = path.join(path.dirname(__dirname), '/gamePacketLog/');
if (fs.existsSync(this.dir) == false) {
fs.mkdirSync(this.dir);
}
this.createFileName = `${_seq}-${this.servername}`;
this.logger = this.getLogger();
}
// 디버그 로그 출력
debug(_message) {
this.logger.debug(_message);
}
// 에러 로그 출력
error(_message) {
this.logger.error(_message);
}
// 로거 호출
getLogger() {
return new winston.createLogger({
level: 'debug',
format: winston.format.printf(({level, message}) => {
return `${message}`;
}),
transports: [
new winston.transports.File({
level: 'debug',
maxsize: 1024 * 10000,
maxFiles: 100000,
filename: `${this.dir}${this.servername}_log_${this.createFileName}.txt`,
})
],
exceptionHandlers: [
new winston.transports.File({
filename: `${this.dir}${this.servername}_error_${this.createFileName}.txt`,
maxsize: 1024 * 10000,
maxFiles: 100000,
level: 'error',
showLevel: true,
}),
],
exitOnError: false
});
}
}
module.exports = gamePacketLogger;
반응형
'프로그래밍 > Node.js' 카테고리의 다른 글
node version 업그레이드 하기! (1) | 2024.05.07 |
---|---|
[자바스크립트] 객체A에서 객체B를 복사 후 객체 B의 특정 프로퍼티 삭제 (0) | 2024.03.04 |
Swagger를 적용해보자! (0) | 2023.12.21 |
nvm (1) | 2023.12.05 |
Nodejs + google webhook 연동 (0) | 2023.07.05 |
댓글