Spaces:
Sleeping
Sleeping
File size: 1,410 Bytes
ccb6b75 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import pino from 'pino';
import fs from 'fs';
import path from 'path';
import dotenv from 'dotenv';
dotenv.config();
const logDir = path.dirname(process.env.LOG_FILE || 'logs/simulator.log');
const logFile = process.env.LOG_FILE || 'logs/simulator.log';
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const targets = [
{
level: process.env.LOG_LEVEL || 'info',
target: 'pino-pretty',
options: {
colorize: true,
translateTime: 'SYS:standard',
ignore: 'pid,hostname',
},
},
{
level: process.env.LOG_LEVEL || 'info',
target: 'pino/file',
options: {
destination: logFile,
mkdir: true,
append: true,
},
},
];
const logger = pino(
{
level: process.env.LOG_LEVEL || 'info',
base: { pid: false },
timestamp: () => `,"time":"${new Date().toISOString()}"`,
redact: {
paths: ['github.token', 'ai.huggingface.apiKey'],
censor: '[REDACTED]',
},
},
pino.transport({ targets })
);
const originalError = logger.error.bind(logger);
logger.error = (obj, msg, ...args) => {
if (obj instanceof Error) {
originalError(
{
err: {
message: obj.message,
stack: obj.stack,
name: obj.name,
},
},
msg || obj.message,
...args
);
} else {
originalError(obj, msg, ...args);
}
};
export default logger;
|