Logging is used to record application business information, runtime status, and troubleshooting issues.
Configuration File
javascript
// ./electron/config/config.default.js(ts)
logger = {
/** Log level: trace < debug < info < warn < error < fatal */
level: 'info',
/** Whether to use pretty-printed format output in development environment */
prettyPrint: true,
/** Log file name date format */
dateFormat: 'yyyy-MM-dd',
/** Application log file name */
appLogName: 'ee.log',
/** Framework core log file name */
coreLogName: 'ee-core.log',
/** Error log file name */
errorLogName: 'ee-error.log',
/** Log rotation strategy: day (per day), hour (per hour) */
rotator: 'day',
/** List of field paths that need to be redacted */
redact: [],
/** Redaction replacement value */
redactCensor: '[Redacted]',
/** Whether to include timestamp */
timestamp: true,
/** IANA timezone for log timestamps (file JSON logs); 'UTC' or e.g. 'Asia/Shanghai' */
timezone: 'UTC',
/** Pino logger name */
name: 'ee',
/** Maximum size of a single log file */
maxSize: '100m',
/** Pino serializers */
serializers: {},
/** Custom log levels */
customLevels: {},
/** Object serialization depth limit */
depthLimit: 5,
/** Safe mode: do not throw exceptions when log write fails */
safe: true,
}Usage
1. Pino Standard Merging Mode
The first parameter is an object (merging object), the second parameter is a message string:
javascript
logger.info({ userId: 123, action: 'login' }, 'User logged in');2. Pino printf Mode
Contains format placeholders like %s, %d, etc.:
javascript
logger.info('User %s logged in, took %d ms', 'Zhang San', 150);3. Concatenation Mode
Multiple parameters are automatically concatenated into a string:
javascript
logger.info('User logged in:', userId, 'took:', elapsed);
// Equivalent to: logger.info('User logged in: 123 took: 150')javascript
logger.trace();
logger.debug();
logger.info();
logger.warn();
logger.error();
logger.fatal();
# Advanced syntax, placeholders
%s: String
%d: Integer
%i: Integer
%f: Floating point number
%o: Object
%O: Object
%c: CSS styleLog Location
Before Packaging: Project Root Directory
electron-egg/logsAfter Packaging: Software Cache Directory
bash
# Windows (example)
----\.software-name(e.g., .ee)\logs\xxx.log
# macOS (example)
Users/user/.software-name(e.g., .ee)/logs
# Linux (example)
$XDG_CONFIG_HOME or ~/.software-name(e.g., .ee)/logs