
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
pino-transport-rotating
Advanced tools
This module provides a custom logging transport for the pino
logger that uses rotating file streams to manage log files. It supports log file rotation based on size and time intervals, and it can be configured to include log file compression.
rotated
event when a log file is rotated.To use the plugin, import it and provide the required configuration options:
import path from "node:path";
import { pino, LoggerOptions } from "pino";
const loggerOptions: LoggerOptions = {
name: "server start",
level: "trace",
transport: {
targets: [
{
level: "info",
target: "pino-pretty",
options: {
colorize: true,
},
},
{
level: "info",
target: "pino-transport-rotating",
options: {
dir: path.join(process.cwd(), "logs"),
filename: "all",
enabled: true,
size: "100K",
interval: "1d",
compress: true,
immutable: true,
},
},
{
level: "error",
target: "pino-transport-rotating",
options: {
dir: path.join(process.cwd(), "logs"),
filename: "error",
enabled: true,
size: "100K",
interval: "1d",
compress: true,
immutable: true,
},
},
],
},
};
const logger = pino(loggerOptions);
logger.info("Server started");
logger.error("An error occurred");
The plugin accepts the following options:
dir
(string, required): The directory where the log files will be saved.filename
(string, optional): The base name of the log file. Defaults to 'app'
.enabled
(boolean, optional): If false
, logging is disabled. Defaults to true
.size
(string, optional): The size at which to rotate the log files. Defaults to '100K'
.interval
(string, optional): The interval at which to rotate the log files. Defaults to '1d'
.compress
(boolean, optional): Whether to compress rotated files. Defaults to true
.immutable
(boolean, optional): Whether to apply immutability to the rotated files. Defaults to true
.{
dir: '/var/log/app',
filename: 'app',
enabled: true,
size: '100K',
interval: '1d',
compress: true,
immutable: true,
}
The log files are rotated based on the following parameters:
100 KB (100K)
- Log files are rotated when they reach 100 KB in size (configurable).1 day (1d)
- Log files are rotated daily (configurable).gzip
- Rotated files are compressed using gzip (configurable).${filename}-${timestamp}.log
- The rotated files are named using the ${filename}-${timestamp}.log
pattern.The plugin emits a rotated
event whenever a log file is rotated. This event can be used to perform additional actions, such as compressing the rotated file. For example:
rotatingStream.on("rotated", async (rotatedFile) => {
console.log(`Log file rotated: ${rotatedFile}`);
// Additional actions, such as compression, can be performed here.
});
dir
exists and is writable by the application.enabled
option can be used to turn off logging without removing the transport configuration.compress
option, when enabled, compresses rotated files into .gz
format and deletes the original file after successful compression.immutable
option ensures that rotated files are not modified after creation.rotated
event provides a hook for custom post-rotation actions, such as archiving or uploading rotated files.This project is licensed under the MIT License. See the LICENSE file for details.
FAQs
Plugin for pino to transport logs to rotating files
The npm package pino-transport-rotating receives a total of 1 weekly downloads. As such, pino-transport-rotating popularity was classified as not popular.
We found that pino-transport-rotating demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.