在 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 应用程序的日志级别。