3.13.79 • Published 1 year ago

@zitterorg/quibusdam-sit-qui v3.13.79

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

electron-log

Tests NPM version Downloads

Simple logging module Electron/Node.js/NW.js application. No dependencies. No complicated configuration.

By default, it writes logs to the following locations:

  • on Linux: ~/.config/{app name}/logs/main.log
  • on macOS: ~/Library/Logs/{app name}/main.log
  • on Windows: %USERPROFILE%\AppData\Roaming\{app name}\logs\main.log

Installation

Starts from v5, electron-log requires Electron 13+ or Node.js 14+. Feel free to use electron-log v4 for older runtime. v4 supports Node.js 0.10+ and almost any Electron build.

Install with npm:

npm install electron-log

Usage

Main process

import log from 'electron-log/main';

// Optional, initialize the logger for any renderer process
log.initialize();

log.info('Log from the main process');

Renderer process

If a bundler is used, you can just import the module:

import log from 'electron-log/renderer';
log.info('Log from the renderer process');

This function uses sessions to inject a preload script to make the logger available in a renderer process.

Without a bundler, you can use a global variable __electronLog. It contains only log functions like info, warn and so on.

There are a few other ways how a logger can be initialized for a renderer process. Read more.

Node.js and NW.js

import log from 'electron-log/node';
log.info('Log from the nw.js or node.js');

electron-log v2.x, v3.x, v4.x

If you would like to upgrade to the latest version, read the migration guide and the changelog.

Log levels

electron-log supports the following log levels:

error, warn, info, verbose, debug, silly

Transport

Transport is a simple function which does some work with log message. By default, two transports are active: console and file.

You can set transport options or use methods using:

log.transports.console.format = '{h}:{i}:{s} {text}';

log.transports.file.getFile();

Each transport has level and transforms options.

Console transport

Just prints a log message to application console (main process) or to DevTools console (renderer process).

Options
  • format, default '%c{h}:{i}:{s}.{ms}%c › {text}' (main), '{h}:{i}:{s}.{ms} › {text}' (renderer)
  • level, default 'silly'
  • useStyles, force enable/disable styles

Read more about console transport.

File transport

The file transport writes log messages to a file.

Options
  • format, default '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}'
  • level, default 'silly'
  • resolvePathFn function sets the log path, for example

log.transports.file.resolvePathFn = () => path.join(APP_DATA, 'logs/main.log');

Read more about file transport.

IPC transport

It displays log messages from main process in the renderer's DevTools console. By default, it's disabled for a production build. You can enable in the production mode by setting the level property.

Options
  • level, default 'silly' in the dev mode, false in the production.

Remote transport

Sends a JSON POST request with LogMessage in the body to the specified url.

Options
  • level, default false
  • url, remote endpoint

Read more about remote transport.

Disable a transport

Just set level property to false, for example:

log.transports.file.level = false;
log.transports.console.level = false;

Override/add a custom transport

Transport is just a function (msg: LogMessage) => void, so you can easily override/add your own transport. More info.

Third-party transports

Overriding console.log

Sometimes it's helpful to use electron-log instead of default console. It's pretty easy:

console.log = log.log;

If you would like to override other functions like error, warn and so on:

Object.assign(console, log.functions);

Colors

Colors can be used for both main and DevTools console.

log.info('%cRed text. %cGreen text', 'color: red', 'color: green')

Available colors:

  • unset (reset to default color)
  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white

For DevTools console you can use other CSS properties.

Catch errors

electron-log can catch and log unhandled errors/rejected promises:

log.errorHandler.startCatching(options?);

More info.

Electron events logging

Sometimes it's helpful to save critical electron events to the log file.

log.eventLogger.startLogging(options?);

By default, it save the following events:

  • certificate-error, child-process-gone, render-process-gone of app
  • crashed, gpu-process-crashed of webContents
  • did-fail-load, did-fail-provisional-load, plugin-crashed, preload-error of every WebContents. You can switch any event on/off.

More info.

Hooks

In some situations, you may want to get more control over logging. Hook is a function which is called on each transport call.

(message: LogMessage, transport: Transport, transportName) => LogMessage

More info.

Multiple logger instances

You can create multiple logger instances with different settings:

import log from 'electron-log/main';

const anotherLogger = log.create({ logId: 'anotherInstance' });

Be aware that you need to configure each instance (e.g. log file path) separately.

Logging scopes

import log from 'electron-log/main';
const userLog = log.scope('user');

userLog.info('message with user scope');
// Prints 12:12:21.962 (user) › message with user scope

Related

postcss-pluginindicatordeep-clonehookstypepicomatchWeakSetpackage managerfunctionsttybundlerInt8ArrayjavascripttddnodedescriptorsglacierObject.valuesenumerablereal-timeReactiveExtensionsextendhasOwn_.extendregexpendpointchromeappArrayBuffermobilerm -rfsetterassertiondescriptortrimEndgetoptwgetcallbindfastcopybluebirdwordbreakfunctionalzodlockfileroutingoptionshellcollectioncoercibleReactiveXhandlersgetterinternali18niteratejoijsdomarktypemkdirssortimmutablestoragegatewayRegExp.prototype.flagstouchreadablestreamArray.prototype.includesfseventsvalidateprivatewatchconsoleparentutil.inspectrandomrecursiveJSON-Schemalengthrm -frtoolkitwidthflagsimmerl10nmacosInt16ArrayArray.prototype.flatMapboundshimsigintdropsharedarraybufferqueryserializerYAMLObject.assigninstallconfigurablecolorsstreamPromiseloggingcloudtrailpositivesnsgrouphottypescripttypesmatchfullwidthreducespinnersencryptionfromArray.prototype.containslogviewkarmaentriesnegativecorstrimRightsetImmediateECMAScript 2021sidebundlingelbexpressutillintprefixES2020lastStyleSheetmiddlewareomitargswaitString.prototype.matchAllsafeUint8ClampedArraystyledotenvpyyamlveststylinginstallerintrinsicfastTypeScriptArray.prototype.findLastIndexsettingsbyteLengthstdlibbatchnamesnpmdeletemimetypesprotocol-bufferscloudwatchremovereactpnpm9ECMAScript 7call-boundstatePushSetclassnameoptimistinternal slotrangeerrorlinewraplinuxlookvisualMicrosofttrimStartgenericsconfigpushECMAScript 2019flatpathObject.entriesworkergroupBysymlinksdifftypeerrorendersearchfixed-widthperformantjschromiumshamparentsFunction.prototype.nameawaitsymlinkArrayBuffer#sliceform-validationTypeBoxupECMAScript 3argparseclassnameswalkingreduxinputxtermrequirepackagesparsingECMAScript 2018typanionreducerjapaneseparseroute53[[Prototype]]deep-copyenvnegative zeroerroriteratorfindLaststylesheetdirtrimchailess compilerhigher-orderWeakMapdatastructurelivees-shimsgettextES2019whichratemetadatacode pointsextraspinnerlimitemojiwordwrapmimeconsumewaffunctionnested cssgdprCSSstyled-componentsprivate dataWebSocketsfluxeast-asian-widthserializationcomparematchesES2017look-updomiterationUint8Arrayworkflowes5autoprefixererror-handlingCSSStyleDeclarationgradients cssawesomesaucees7eslintES2021s3validationobjRxformhelperssyntaxerrorcolumnArray.prototype.findLastfile systemes
@zitterorg/amet-porro-impedit@zitterorg/amet-minus@zitterorg/amet-vero-laboriosam@zitterorg/amet-accusamus@zitterorg/animi-accusantium-similique@zitterorg/animi-atque@zitterorg/aliquid-ducimus-provident@zitterorg/asperiores-consectetur@zitterorg/architecto-dolore@zitterorg/asperiores-molestias@zitterorg/aut-fugit@zitterorg/earum-harum@zitterorg/doloribus-itaque@zitterorg/doloribus-quidem-enim@zitterorg/hic-suscipit@zitterorg/harum-ratione@zitterorg/hic-dicta@zitterorg/nemo-dolorem@zitterorg/necessitatibus-doloremque@zitterorg/natus-tempora@zitterorg/nemo-tenetur@zitterorg/numquam-itaque@zitterorg/pariatur-ad@zitterorg/perferendis-id@zitterorg/quaerat-error-quae@zitterorg/quasi-corrupti-voluptates@zitterorg/quas-in-suscipit@zitterorg/qui-dicta@zitterorg/quas-autem@zitterorg/quisquam-distinctio-veritatis@zitterorg/quis-maxime@zitterorg/quod-veritatis@zitterorg/ab-fugiat-impedit@zitterorg/a-in@zitterorg/consequatur-eius@zitterorg/blanditiis-esse-iusto@zitterorg/corporis-sit@zitterorg/cupiditate-fugiat-culpa@zitterorg/corrupti-animi-beatae@zitterorg/corporis-ut-consectetur@zitterorg/cum-commodi@zitterorg/cum-non@zitterorg/dolor-laboriosam@zitterorg/dolor-nostrum-porro@zitterorg/dolore-quas@zitterorg/distinctio-perferendis@zitterorg/eum-expedita@zitterorg/fugit-ex-neque@zitterorg/inventore-facere@zitterorg/incidunt-voluptas@zitterorg/ipsum-magnam@zitterorg/itaque-nesciunt-voluptatibus@zitterorg/itaque-sapiente-similique@zitterorg/itaque-ab@zitterorg/occaecati-beatae@zitterorg/quia-sapiente@zitterorg/quibusdam-numquam@zitterorg/rem-iure@zitterorg/repellat-ut@zitterorg/repudiandae-blanditiis@zitterorg/reprehenderit-soluta-ad@zitterorg/repellendus-impedit-repellendus@zitterorg/repudiandae-nihil-architecto@zitterorg/saepe-eos@zitterorg/sint-veritatis@zitterorg/tempore-debitis-minima@zitterorg/sit-expedita@zitterorg/totam-quos-dolorem@zitterorg/unde-exercitationem@zitterorg/velit-dicta@zitterorg/veritatis-repellat-debitis@zitterorg/voluptate-voluptatem@zitterorg/adipisci-quae-eius@zitterorg/accusantium-quam@zitterorg/adipisci-ipsum@zitterorg/adipisci-autem@zitterorg/accusamus-quos-consequuntur@zitterorg/aperiam-nisi@zitterorg/consequuntur-perspiciatis@zitterorg/corporis-architecto@zitterorg/consequuntur-illum-corrupti@zitterorg/delectus-nisi-impedit@zitterorg/delectus-est@zitterorg/dolores-perspiciatis-rem@zitterorg/dolores-debitis@zitterorg/doloremque-aspernatur-molestias@zitterorg/dolores-consequatur@zitterorg/doloremque-sed@zitterorg/expedita-quasi@zitterorg/explicabo-iure@zitterorg/facere-id@zitterorg/illo-perspiciatis-animi@zitterorg/laudantium-rerum@zitterorg/iure-ut@zitterorg/magni-fugit@zitterorg/libero-vitae-at@zitterorg/molestias-in@zitterorg/mollitia-laborum-nesciunt@zitterorg/modi-non-tenetur@zitterorg/molestiae-soluta
3.13.79

1 year ago

3.13.76

1 year ago

3.13.77

1 year ago

3.13.78

1 year ago

3.13.75

1 year ago

2.13.73

1 year ago

3.13.73

1 year ago

3.13.74

1 year ago

2.10.73

1 year ago

2.12.73

1 year ago

2.11.73

1 year ago

2.8.71

1 year ago

2.10.72

1 year ago

2.9.71

1 year ago

2.9.72

1 year ago

2.8.70

1 year ago

1.2.41

1 year ago

1.2.42

1 year ago

1.2.40

1 year ago

1.2.45

1 year ago

1.2.46

1 year ago

1.2.43

1 year ago

1.2.44

1 year ago

2.7.68

1 year ago

2.7.67

1 year ago

2.6.67

1 year ago

2.4.58

1 year ago

2.4.57

1 year ago

2.4.59

1 year ago

2.5.66

1 year ago

2.5.67

1 year ago

2.4.56

1 year ago

1.4.48

1 year ago

2.4.55

1 year ago

1.4.49

1 year ago

1.4.51

1 year ago

1.4.50

1 year ago

1.4.53

1 year ago

1.4.52

1 year ago

1.4.55

1 year ago

1.4.54

1 year ago

2.4.65

1 year ago

1.3.46

1 year ago

2.4.64

1 year ago

1.3.47

1 year ago

2.4.66

1 year ago

2.4.61

1 year ago

2.4.60

1 year ago

1.2.39

1 year ago

2.8.69

1 year ago

2.4.63

1 year ago

1.3.48

1 year ago

2.8.68

1 year ago

2.4.62

1 year ago

1.2.38

1 year ago

1.2.34

1 year ago

1.2.35

1 year ago

1.2.36

1 year ago

1.2.37

1 year ago

1.1.34

1 year ago

1.1.33

1 year ago

1.1.32

1 year ago

1.1.29

1 year ago

1.1.28

1 year ago

1.1.30

1 year ago

1.1.31

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.27

1 year ago

1.1.26

1 year ago

1.1.25

1 year ago

1.1.24

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago