- fix:
#436
log.log
isn't bound tolog.info
. Previously, it was processed with non-existentlog
level.
- New entry point for NW.js / Node.js apps:
'electron-log/node'
- Now it's a time to use modern ES instead of ES5. It was a joy to use old-fashioned ES5, but since the library grows it becomes harder to follow its restrictions. Starting from v5 the library requires Node.js 14+ or Electron 13 at least.
- Now a renderer process just sends log data to the main through IPC, so only the main logger can be configured. See initialize for more information
- A new
tranforms
property is added for each transport. It allows to configure transformations preformed on message data. See transforms for more information. log.create(logId)
is replaced bylog.create({ logId })
archiveLog
options is renamed toarchiveLogFn
resolvePath
options is renamed toresolvePathFn
- All logs are written to main.log file. If you want to write renderer
logs to a separated file, you can do that by overriding
resolvePathFn
writeFn
callback is added. By default, it just passesmessage.data
toconsole.log
function
onError
is renamed toprocessErrorFn({ error, message, request })
transformBody
is renamed tomakeBodyFn({ logger, message, transport })
To simplify app debugging the Electron event logging was implemented.
- Disable auto-loading of electron-log in the main process for using by ipc transport
- Add
transport.file.inspectOptions
transport.file.depth
is deprecated
- Add
transports.remote.onError
option - Add
logMessageWithTransports
method - Add
transports.file.readAllLogs
method
- Add
transports.file.depth
option
- Feature: Helper for custom log levels: log.levels.add
- Stringify Errors instead of converting to object
- Feature: Submit error report to github or other source
- Feature: Scopes
-
multiple logger instances support.
const log = electronLog.create('loggerId')
-
add object
log.functions
-
Web Workers support
-
New default log file path:
- on Linux:
~/.config/{app name}/logs/{process type}.log
- on macOS:
~/Library/Logs/{app name}/{process type}.log
- on Windows:
%USERPROFILE%\AppData\Roaming\{app name}\logs\{process type}.log
- on Linux:
-
the option
file.fileName
is nowmain.log
,renderer.log
orworker.log
depending on process type -
new option
file.resolvePath
-
new method
file.getFile()
-
deprecated
file.file
, usefile.resolvePath
instead -
deprecated
file.bytesWritten
, usefile.getFile().bytesWritten
instead -
deprecated
file.fileSize
, usefile.getFile().size
instead -
deprecated
file.clear()
, usefile.getFile().clear()
instead -
deprecated
file.findLogPath()
, usefile.getFile().path
instead -
deprecated
file.init()
, doesn't matter anymore
mainConsole
andrendererConsole
are combined intoipc
transport
- Now IPC is used only for some transports, which are disabled for a packaged application. So now electron-log works using almost the same way in the main and renderer processes. The reason - IPC is pretty slow and can freeze an application when there are a lot of calls.
- File transport doesn't use
stream.Writable
anymore. - New feature: hooks.
- New feature: log file clearing.
- New feature: colors support.
- New feature: errors catching.
- Changed default format option for console transport.
- log-s transport is renamed to remote.
- Add Renderer Console transport
- Move log.appName property to log.transports.file.appName.
- Change a log message object. See updated Override transport section if you use custom transport.
- Now it's not possible to configure transports from a renderer process, only from the main.
- To disable a transport set its level to
false
. - Fix problems when this package is used from a renderer process.
- Add Typescript definitions.
- Add log-s transport (experimental).
- Fix file transport appName detection when an application is run
in dev environment (through
electron .
or similar way)
- #18 Rename 'warning' log level to 'warn'
- #14 Use native console levels instead of console.log
- Prefer to use package.json:productName instead of package.json:name to determine a log path.