在 Debian 系統中,JavaScript 應用程序的日志級別通常由應用程序本身或使用的日志庫來控制。以下是一些常見的方法來設置 JavaScript 應用程序的日志級別:
console.log
或其他控制臺方法如果你使用的是 Node.js 或其他支持 console.log
的環境,你可以通過調整日志輸出的詳細程度來控制日志級別。
// 默認情況下,console.log 輸出所有級別的日志
console.log('This is a log message');
// 你可以自定義日志級別
const logLevels = {
error: 0,
warn: 1,
info: 2,
debug: 3,
verbose: 4
};
function log(level, message) {
if (level <= currentLogLevel) {
console.log(`[${level}] ${message}`);
}
}
let currentLogLevel = logLevels.info; // 設置當前日志級別
log(logLevels.info, 'This is an info message'); // 輸出
log(logLevels.debug, 'This is a debug message'); // 不輸出
許多 JavaScript 應用程序使用第三方日志庫,如 winston
、morgan
或 pino
。這些庫通常提供了詳細的配置選項來設置日志級別。
winston
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 設置默認日志級別
format: winston.format.json(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('This is an info message'); // 輸出
logger.debug('This is a debug message'); // 不輸出
morgan
const express = require('express');
const morgan = require('morgan');
const app = express();
app.use(morgan('combined')); // 默認日志級別
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
一些應用程序允許通過配置文件來設置日志級別。例如,如果你使用的是 pm2
來管理 Node.js 應用程序,你可以在 ecosystem.config.js
文件中設置日志級別。
module.exports = {
apps: [{
name: 'my-app',
script: 'app.js',
log_level: 'info' // 設置日志級別
}]
};
某些應用程序允許通過環境變量來設置日志級別。例如,使用 winston
時:
const winston = require('winston');
const logger = winston.createLogger({
level: process.env.LOG_LEVEL || 'info', // 從環境變量讀取日志級別
format: winston.format.json(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
然后你可以通過設置環境變量來控制日志級別:
LOG_LEVEL=debug node app.js
通過這些方法,你可以靈活地控制 Debian 系統中 JavaScript 應用程序的日志級別。