All Projects → megahertz → Electron Log

megahertz / Electron Log

Licence: mit
Just a simple logging module for your Electron application

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Electron Log

Loglevelnext
A modern logging library for Node.js that provides log level mapping to the console
Stars: ✭ 33 (-95.69%)
Mutual labels:  console, logging, log
Logging Helpers
Basic template helpers for printing messages out to the console. Useful for debugging context in templates. Should work with any template engine.
Stars: ✭ 5 (-99.35%)
Mutual labels:  console, logging, log
Console
OS X console application.
Stars: ✭ 298 (-61.05%)
Mutual labels:  console, logging, log
Quicklogger
Library for logging on files, console, memory, email, rest, eventlog, syslog, slack, telegram, redis, logstash, elasticsearch, influxdb, graylog, Sentry, Twilio, ide debug messages and throw events for Delphi/Firemonkey/freepascal/.NET (Windows/Linux/OSX/IOS/Android).
Stars: ✭ 137 (-82.09%)
Mutual labels:  console, logging, log
debug.js
Debugger of JavaScript, by JavaScript, for JavaScript
Stars: ✭ 19 (-97.52%)
Mutual labels:  console, log
Dozzle
Realtime log viewer for docker containers.
Stars: ✭ 684 (-10.59%)
Mutual labels:  logging, log
gxlog
A concise, functional, flexible and extensible logger for go.
Stars: ✭ 65 (-91.5%)
Mutual labels:  log, logging
Oklog
A distributed and coördination-free log management system
Stars: ✭ 2,937 (+283.92%)
Mutual labels:  logging, log
webpack-log
A logger for the Webpack ecosystem
Stars: ✭ 18 (-97.65%)
Mutual labels:  console, log
Log
Console.log with style.
Stars: ✭ 2,766 (+261.57%)
Mutual labels:  console, log
Consola
Elegant Console Logger for Node.js and Browser 🐨
Stars: ✭ 3,461 (+352.42%)
Mutual labels:  console, log
logt
🖥️ A colourful logger for the browser
Stars: ✭ 35 (-95.42%)
Mutual labels:  console, log
ptkdev-logger
🦒 Beautiful Logger for Node.js: the best alternative to the console.log statement
Stars: ✭ 117 (-84.71%)
Mutual labels:  console, log
UE4 MagicConsole
Enhanced UE4 output log widget
Stars: ✭ 71 (-90.72%)
Mutual labels:  console, log
consono
The most correct, informative, appealing and configurable variable inspector for JavaScript
Stars: ✭ 17 (-97.78%)
Mutual labels:  console, log
Home
Project Glimpse: Node Edition - Spend less time debugging and more time developing.
Stars: ✭ 260 (-66.01%)
Mutual labels:  console, logging
Daiquiri
Python library to easily setup basic logging functionality
Stars: ✭ 308 (-59.74%)
Mutual labels:  logging, log
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+392.68%)
Mutual labels:  logging, log
Log4rs
A highly configurable logging framework for Rust
Stars: ✭ 483 (-36.86%)
Mutual labels:  logging, log
Chromelogger Python
Python library for logging variables to Google Chrome console
Stars: ✭ 232 (-69.67%)
Mutual labels:  console, logging

electron-log

Build Status NPM version Dependencies status

Just a simple logging module for your Electron or NW.js application. No dependencies. No complicated configuration. Just require and use. Also, it can be used without Electron in any node.js application.

By default, it writes logs to the following locations:

  • 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

Installation

Install with npm:

npm install electron-log

Usage

const log = require('electron-log');

log.info('Hello, log');
log.warn('Some problem appears');

electron-log v2.x, v3.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

nodeIntegration

If you've got an error like require is not defined in a renderer process, read the nodeIntegration section.

Transport

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

If you change some transport options, make sure you apply the changes both in main and renderer processes.

You can set transport options or use methods using:

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

log.transports.file.getFile();

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, use styles in the main process even if TTY isn't attached, default null

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'
  • resolvePath function sets the log path, for example
log.transports.file.resolvePath = () => path.join(APP_DATA, 'logs/main.log');

Read more about file transport.

IPC transport

When logging inside renderer process, it also shows log in application console and vice versa. This transport can impact on performance, so it's disabled by default for packaged application.

Options
  • level, default 'silly'

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.

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.catchErrors(options?);

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) => LogMessage

More info.

Multiple logger instances

You can create multiple logger instances with different settings:

const electronLog = require('electron-log');

const log = electronLog.create('anotherInstance');

Logging scopes

const log = require('electron-log');
const userLog = log.scope('user');

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

Web Worker

It's possible to use the module with Web Worker. However, ipc transport is not active, so log messages from worker are not displayed in the main app console.

Related

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].