nodejs 로그 파일은 어디에 있습니까?
nodejs 로그 파일이 저장되어 있는 장소를 찾을 수 없습니다.노드 서버에 "Segmentation fault"(세그먼트화 오류)가 있기 때문에 로그 파일에서 추가 정보를 확인하고자 합니다.
로그 파일이 없습니다.각 node.js "app"은 별개의 엔티티입니다.기본적으로 오류를 STDERR에 기록하고 STDOUT에 출력합니다.셸에서 실행하여 대신 파일에 기록할 때 이를 변경할 수 있습니다.
node my_app.js > my_app_log.log 2> my_app_err.log
또는(권장) 수동으로 또는 여러 로그 라이브러리 중 하나를 사용하여 응용프로그램 내부에 로그를 추가할 수 있습니다.
영원히 당신에게 관심이 될 수도 있습니다.로그 옵션과 함께 .js-File을 24/7로 실행합니다.다음은 도움말 텍스트에서 나온 두 가지 부분입니다.
[장기적으로 진행되는 프로세스]로그 메시지를 콘솔에 출력하는 작업은 영원히 계속됩니다.ex. forever -o out.log -err.log my-script.js
그리고.
[대몬]영원한 프로세스는 백그라운드에서 대상 프로세스를 시작하는 데몬으로 실행됩니다.이는 nohup을 사용하지 않고 단순 node.js 스크립트를 원격으로 시작하는 데 매우 유용합니다.-o-l, & -e.ex.forever start -l forever.log -o out.log -err.log my-daemon.js forever stop my-daemon.js로 시작하는 것이 좋습니다.
개발자에서 도커를 사용하는 경우 다른 셸에서 이 작업을 수행할 수 있습니다. 도커 부착 running_node_app_container_name
그러면 STDOUT과 STDERR이 나옵니다.
nodejs 로그 파일의 경우 winston과 morgan을 사용할 수 있으며 console.log() 문 사용자 winston.log() 또는 기타 winston 메서드를 사용하여 로그할 수 있습니다.winston과 morgan의 작업을 위해 npm을 사용하여 설치해야 합니다.예: npm i - S 윈스턴 npm i - 모건
그런 다음 프로젝트에서 winston이라는 이름의 폴더를 만든 다음 해당 폴더에 config.js를 만들고 아래에 주어진 코드를 복사합니다.
const appRoot = require('app-root-path');
const winston = require('winston');
// define the custom settings for each transport (file, console)
const options = {
file: {
level: 'info',
filename: `${appRoot}/logs/app.log`,
handleExceptions: true,
json: true,
maxsize: 5242880, // 5MB
maxFiles: 5,
colorize: false,
},
console: {
level: 'debug',
handleExceptions: true,
json: false,
colorize: true,
},
};
// instantiate a new Winston Logger with the settings defined above
let logger;
if (process.env.logging === 'off') {
logger = winston.createLogger({
transports: [
new winston.transports.File(options.file),
],
exitOnError: false, // do not exit on handled exceptions
});
} else {
logger = winston.createLogger({
transports: [
new winston.transports.File(options.file),
new winston.transports.Console(options.console),
],
exitOnError: false, // do not exit on handled exceptions
});
}
// create a stream object with a 'write' function that will be used by `morgan`
logger.stream = {
write(message) {
logger.info(message);
},
};
module.exports = logger;
위의 코드를 복사한 후 winston과 평행하거나 원하는 곳에 이름 로그가 있는 폴더를 만들고 해당 로그 폴더에 app.log 파일을 만듭니다.config.js로 돌아가서 5행 "filename:"에 경로를 설정합니다.${appRoot}/logs/app.log
, 당신이 만든 각각의 app.log에.
이 후 index.js로 이동하여 다음 코드를 포함합니다.
const morgan = require('morgan');
const winston = require('./winston/config');
const express = require('express');
const app = express();
app.use(morgan('combined', { stream: winston.stream }));
winston.info('You have successfully started working with winston and morgan');
언급URL : https://stackoverflow.com/questions/10815218/where-is-nodejs-log-file
'programing' 카테고리의 다른 글
파이썬 애플리케이션을 정적 바이너리로 컴파일하는 방법이 있습니까? (0) | 2023.10.25 |
---|---|
동적으로 로드된 스크립트를 기다리는 중 (0) | 2023.10.25 |
angular.js $http 개체가 X-Requested-With 헤더를 보내지 못하도록 하는 방법은 무엇입니까? (0) | 2023.10.25 |
row_number() 그룹화 기준? (0) | 2023.10.20 |
MySQL을 시작할 때 "스토리지 엔진으로 'InnoDB' 등록 실패" 오류가 발생합니다. (0) | 2023.10.20 |