Skip to content

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 style

Log Location

Before Packaging: Project Root Directory

electron-egg/logs

After 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