在Ubuntu系統中,定制JavaScript(JS)日志格式通常涉及到配置應用程序或服務的日志系統。以下是一些常見的方法來定制JS日志格式:
winston
庫winston
是一個流行的Node.js日志庫,可以用來記錄和格式化日志。
winston
npm install winston
winston
日志格式const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('Hello, world!');
morgan
庫morgan
是一個HTTP請求日志中間件,常用于Express應用。
morgan
npm install morgan
morgan
日志格式const express = require('express');
const morgan = require('morgan');
const app = express();
app.use(morgan('combined')); // 默認格式
// 自定義格式
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Ubuntu系統通常使用syslog
或rsyslog
來記錄系統日志。你可以通過配置這些服務來定制日志格式。
rsyslog
編輯/etc/rsyslog.conf
或創建一個新的配置文件在/etc/rsyslog.d/
目錄下。
sudo nano /etc/rsyslog.d/50-default.conf
添加自定義日志格式:
$template CustomFormat,"%timegenerated% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
*.* ?CustomFormat
& stop
重啟rsyslog
服務:
sudo systemctl restart rsyslog
如果你在Docker容器中運行Node.js應用,可以通過配置Docker容器的日志驅動和選項來定制日志格式。
在docker-compose.yml
中配置日志驅動:
version: '3'
services:
app:
image: your-node-app-image
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
通過這些方法,你可以根據需要定制Ubuntu系統中JavaScript應用的日志格式。選擇適合你應用場景的方法進行配置即可。