在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应用的日志格式。选择适合你应用场景的方法进行配置即可。