app.js를 여러 번 실행했음에도 불구하고, 로그가 단 한 번만 출력됨
app.js를 여러 번 실행했음에도 불구하고, 로그가 단 한 번만 출력됩니다. 포트 충돌 문제인가 해서 8080 포트 죽여보고 9090으로 바꿨는데도 안됩니다. ㅜ
[winston을 통한 로깅 설정 및 서버 시작하기] 수강 중입니다.
답변 2
1
1. winston.js 2. app js 입니다!
/* winston과 winston-daily-rotate-file 라이브러리를 사용하여 로그 관리 시스템을 설정함
winston : 로깅 범용 라이브러리
winston-daily-rotate-file: 로그 파일을 일별로 자동 분할하는 추가적인 기능을 제공하는 트랜스포트 (로그 출력 방식을 결정하는 컴포넌트)
*/
const { createLogger, format, transports } = require("winston");
const winstonDaily = require("winston-daily-rotate-file");
// 로그 파일을 저장할 디렉토리를 지정
const logDir = "logs";
// 로그 메시지의 포맷을 정의, (timestamp, level, message)
const logFormat = format.printf((info) => {
return `${info.timestamp} ${info.level} : ${info.message}`;
});
// 로거 인스턴스 생성
const SocketLogger = createLogger({
format: format.combine(
format.timestamp({
format: "YYYY-MM-DD HH:mm:ss",
}),
logFormat
),
// 로그 출력 대상 설정 , 트랜스포트들의 객체
transports: [
new winstonDaily({
fileName: "socket.log-info.log",
datePattern: "YYYY-MM-DD",
dirname: logDir + "/socket",
level: "info",
}),
new winstonDaily({
fileName: "socket.err.log",
datePattern: "YYYY-MM-DD",
dirname: logDir + "/socket",
level: "error",
}),
],
});
SocketLogger.add(
new transports.Console({
format: format.combine(format.colorize(), format.simple()),
})
);
module.exports = {SocketLogger};// Express, HTTP, WebSocket, (CORS (cross_origin resource_sharing):교차 출처 리소스 공유)를 사용하여 기초 애플리케이션을 설정
// const express = require("express"); // 애플리케이션을 위한 빠르고 개방적인 웹 프레임워크
const http = require("http"); // 서버 생성 및 HTTP 요청 관리에 사용
const cors = require("cors"); // 다른 도메인에서 실행 중인 웹 페이지가 현재 웹 페이지와 상호 작용할 수 있게 함
const WebSocket = require("ws"); // 실시간 양방향 통신을 가능하게 하는 WebSocket 라이브러리
const { SocketLogger } = require("./logs/winston");
// const app = express();
// app.use(
// cors({
// origin:"*",
// })
// )
// app.use(express.json());
// app.use(express.urlencoded({extended: false}));
const server = http.createServer();
const wss = new WebSocket.Server({server});
const PORT = process.env.PORT || 8080;
server.listen(PORT, () => {
SocketLogger.info(`Server Started on port = ${PORT}`);
})
1
로그는 하나만 뜨는게 당연해보입니다.
지금 보시면 서버를 구동하였을 때 그때에만 로그를 기록하고 있습니다.
소켓 통신까지 구현해보시고 해당 요청에 로깅을 추가하시면 좀 더 다양한 로그를 보실 수 있을겁니다.
감사합니다!!
0
한번만 호출이되는 상황이라는 정보만으로는 제가 알 수있는 정보가 적어서 정확한 답변을 드리기 어려울꺼 같습니다.
혹시 현재 app.js 소스코드와 로그관리를 하는 js 코드를 올려주실 수 있을까요??
2강 nodejs 3단계 설명 질문
0
16
1
useEffect와 lifecycle문의
0
22
2
프론트엔드 학습 수준 문의
0
29
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
43
2
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
36
1
데이터 로딩중 화면만 계속 나와요!!
0
51
2
Streaming 중인 서비스에서 모든 파드에 broadcast하는 방법
0
118
3
프론트쪽이 리액트로 되어있는데요..
0
123
2
오늘 강의 듣기 시작했는데요!
0
132
2
RunInit() 관련 질문
0
180
5
소켓 연결과 http
0
154
2
학습자료는 어디서 받나요?
1
200
1
현재 강의에서 재생관련 문제가 있어서 전달드립니다.
1
202
2
강의에 음성만 나오고 영상이 나오질 않습니다 ㅠ
0
142
1
데이터 불러오기
1
143
1
panic 사용
1
116
1
defer 사용
1
129
1
nodejs 파일이 프론트엔디 파일인가요??
0
220
1
채팅 메시지 DB로 저장 하기.
1
843
2
채팅이 2번씩 전송되는 현상 질문
1
314
1
뭔가 중간에 오타를 쳤는지 오류가 자꾸 발생하는데 혹시 go 소스코드 볼수있는곳 있나요?
1
247
1
다른 질문을 읽고 궁금한 점이 생겼습니다.
1
303
1
소켓 서버의 수평적 확장 및 무중단 배포에 대해 질문드립니다!
3
1304
2
몇천명이 Room 에 동시접속할 수 있도록 설계하려면 어떤 것들이 필요할까요?
1
473
2





