10.2.300 • Published 3 years ago

@sprucelabs/log v10.2.300

Weekly downloads
5,052
License
-
Repository
-
Last release
3 years ago

Sprucebot Logger

An isomorphic logger (based on iso-log) and metrics collection utilities for the Sprucebot platform.

Installation

yarn add @sprucelabs/log

Usage

In browser console:

Console

And in terminal:

Terminal

Features

  • Works both client and server side

  • Log levels

  • Outputs logs using native console methods

  • Trace log statements to files and lines

  • Sourcemap support

  • Collect and send metrics

Browser (client) Usage

const log = require('@sprucelabs/log');

NodeJS (server) Usage

const logger = require('@sprucelabs/log');
const log = logger.log;
// After the logger is initialized, set some options
log.setOptions({
	level: 'debug',
	useTrace: true,
	useSourcemaps: true,
	appName: 'myskill', // You choose an app name. This will bucket your metrics together
	appEnv: 'production' // Set the current environment which will allow us to segment metrics from different environments.
	// SERVER OPTION ONLY! Your app key should only be set when using this from your server. This should be treated like a password and NEVER exposed publicly
	appKey: 'ec858f58-0978-4fa7-8cdb-704902f30692'
	// Optionally set the following parameters
	flushAt: 10, // The number of metrics to collect before sending them (default 10)
	flushIntervalSec: 10, // How often to send metrics (if any have been collected) (default 10)
	userAgent: navigator.userAgent(), // The user agent making the request
	packageName: 'myskill', // Your app's package name
	packageVersion: 'v1.4.34', // Your apps's package version
	metricsUrl: 'https://metrics.sprucebot.com' // The server where metrics are sent
});

log.debug('All set!');

log.metric({
	event: 'user-did-something', // The event name to track
	value: 3, // Optional: If set, must be a number
	// All the following parameters are optional and allows you to override what was automatically detected or set in log.setOptions()
	userAgent: navigator.userAgent(), // The user agent making the request
	packageName: 'myskill', // Your app's package name
	packageVersion: 'v1.4.34', // Your apps's package version
	time: Date.now(), // The unix timestamp for this event (default is now)
	hostname: window.location.hostname // The current hostname
})

Additional NodeJS (server) Features

Server Metrics Collection

We can collect server metrics like CPU and memory usage automatically. After you've initialized the logger and called setOptions() just call:

logger.nodeMetrics();

Request Metrics (for express-based apps)

We can collect stats on the type of HTTP requests being made by installing the request middleware. After you've initialized the logger and called setOptions() initialize your express app and the add the middleware:

const app = express();

app.use(logger.middleware.requests());

Sequelize Middleware Metrics Collection

We can collect stats on create/update/delete methods of models. After you've initialized the logger and called setOptions() initialize Sequelize and add the metrics hooks:

const sequelize = new Sequelize(this.uri, this.options);

logger.sequelizeHooks(sequelize);

Options

level - The log level to use. Default: 'debug'

Valid levels are:

trace
debug
log
info
warn
error
superInfo

If the level specified is info, then info, warn, error, and superInfo logs would be written to the console. trace and debug logs would NOT be written to the console.

useTrace - Whether to run a trace which will add the file and line number. Default: true

useSourcemaps - Whether to try to resolve the original file and line number. Will look for the sourcemap in the corresponding .map file. For example, /some/js/file.js.map. Default: true

Logging Examples

log.trace('log at level trace');
log.debug('log at level debug');
log.log('log at level log');
log.info('log at level info');
log.warn('log at level warn');
log.error('log at level error');
log.superInfo('log at level error');

log.crit('log at level error'); // alias of 'error'
log.fatal('log at level error'); // alias of 'error'

// Anything that can be passed to console.log can be passed to the logger
log.debug({ some: 'object here' });
log.debug('multiple things', 'getting logged here', { some: 'object here' });

Sourcemaps and Webpack

For source maps to properly work you'll need to make sure you're generating them (with the original source info). If you're using webpack you can add this to your config:

{
	devtool: 'cheap-module-source-map';
}

If you're using webpack and receive a Module not found: Error: Can't resolve 'fs', just add the following to your webpack config:

node: {
	fs: 'empty';
}
10.2.300

3 years ago

10.2.299

3 years ago

10.2.298

3 years ago

10.2.297

3 years ago

10.2.296

3 years ago

10.2.295

3 years ago

10.2.294

4 years ago

10.2.292

4 years ago

10.2.293

4 years ago

10.2.291

4 years ago

10.2.287

4 years ago

10.2.288

4 years ago

10.2.289

4 years ago

10.2.290

4 years ago

10.2.286

4 years ago

10.2.285

4 years ago

10.2.284

4 years ago

10.2.283

4 years ago

10.2.282

4 years ago

10.2.281

4 years ago

10.2.280

4 years ago

10.2.279

4 years ago

10.2.278

4 years ago

10.2.277

4 years ago

10.2.276

4 years ago

10.2.275

4 years ago

10.2.274

4 years ago

10.2.273

4 years ago

10.2.272

4 years ago

10.2.271

4 years ago

10.2.270

4 years ago

10.2.269

4 years ago

10.2.268

4 years ago

10.2.265

4 years ago

10.2.266

4 years ago

10.2.267

4 years ago

10.2.264

4 years ago

10.2.263

4 years ago

10.2.262

4 years ago

10.2.261

4 years ago

10.2.260

4 years ago

10.2.259

4 years ago

10.2.258

4 years ago

10.2.256

4 years ago

10.2.257

4 years ago

10.2.254

4 years ago

10.2.255

4 years ago

10.2.252

4 years ago

10.2.253

4 years ago

10.2.251

4 years ago

10.2.249

4 years ago

10.2.248

4 years ago

10.2.250

4 years ago

10.2.247

4 years ago

10.2.246

4 years ago

10.2.244

4 years ago

10.2.245

4 years ago

10.2.243

4 years ago

10.2.242

4 years ago

10.2.241

4 years ago

10.2.240

4 years ago

10.2.239

4 years ago

10.2.238

4 years ago

10.2.237

4 years ago

10.2.236

4 years ago

10.2.234

4 years ago

10.2.235

4 years ago

10.2.233

4 years ago

10.2.231

4 years ago

10.2.230

4 years ago

10.2.229

4 years ago

10.2.228

4 years ago

10.2.227

4 years ago

10.2.225

4 years ago

10.2.226

4 years ago

10.2.224

4 years ago

10.2.223

4 years ago

10.2.222

4 years ago

10.2.221

4 years ago

10.2.220

4 years ago

10.2.219

4 years ago

10.2.218

4 years ago

10.2.216

4 years ago

10.2.217

4 years ago

10.2.215

4 years ago

10.2.211

4 years ago

10.2.214

4 years ago

10.2.212

4 years ago

10.2.213

4 years ago

10.2.209

4 years ago

10.2.210

4 years ago

10.2.207

4 years ago

10.2.208

4 years ago

10.2.206

4 years ago

10.2.205

4 years ago

10.2.204

4 years ago

10.2.203

4 years ago

10.2.202

4 years ago

10.2.200

4 years ago

10.2.201

4 years ago

10.2.199

4 years ago

10.2.198

4 years ago

10.2.197

4 years ago

10.2.196

4 years ago

10.2.195

4 years ago

10.2.194

4 years ago

10.2.193

4 years ago

10.2.192

4 years ago

10.2.191

4 years ago

10.2.190

4 years ago

10.2.189

4 years ago

10.2.188

4 years ago

10.2.186

4 years ago

10.2.187

4 years ago

10.2.185

4 years ago

10.2.184

4 years ago

10.2.183

4 years ago

10.2.182

4 years ago

10.2.178

4 years ago

10.2.179

4 years ago

10.2.180

4 years ago

10.2.181

4 years ago

10.2.177

4 years ago

10.2.175

4 years ago

10.2.176

4 years ago

10.2.173

4 years ago

10.2.174

4 years ago

10.2.171

4 years ago

10.2.172

4 years ago

10.2.170

4 years ago

10.2.169

4 years ago

10.2.168

4 years ago

10.2.167

4 years ago

10.2.166

4 years ago

10.2.165

4 years ago

10.2.164

4 years ago

10.2.162

4 years ago

10.2.163

4 years ago

10.2.160

4 years ago

10.2.161

4 years ago

10.2.159

4 years ago

10.2.158

4 years ago

10.2.157

4 years ago

10.2.155

4 years ago

10.2.156

4 years ago

10.2.154

4 years ago

10.2.153

4 years ago

10.2.151

4 years ago

10.2.152

4 years ago

10.2.150

4 years ago

10.2.149

4 years ago

10.2.148

4 years ago

10.2.147

4 years ago

10.2.144

4 years ago

10.2.145

4 years ago

10.2.146

4 years ago

10.2.142

4 years ago

10.2.143

4 years ago

10.2.141

4 years ago

10.2.140

4 years ago

10.2.139

4 years ago

10.2.137

4 years ago

10.2.138

4 years ago

10.2.136

4 years ago

10.2.134

4 years ago

10.2.135

4 years ago

10.2.133

4 years ago

10.2.131

4 years ago

10.2.132

4 years ago

10.2.130

4 years ago

10.2.128

4 years ago

10.2.129

4 years ago

10.2.127

4 years ago

10.2.126

4 years ago

10.2.125

4 years ago

10.2.124

4 years ago

10.2.123

4 years ago

10.2.122

4 years ago

10.2.120

4 years ago

10.2.121

4 years ago

10.2.119

4 years ago

10.2.118

4 years ago

10.2.117

4 years ago

10.2.116

4 years ago

10.2.115

4 years ago

10.2.113

4 years ago

10.2.114

4 years ago

10.2.112

4 years ago

10.2.111

4 years ago

10.2.110

4 years ago

10.2.109

4 years ago

10.2.108

4 years ago

10.2.107

4 years ago

10.2.106

4 years ago

10.2.105

4 years ago

10.2.104

4 years ago

10.2.103

4 years ago

10.2.100

4 years ago

10.2.101

4 years ago

10.2.102

4 years ago

10.2.99

4 years ago

10.2.98

4 years ago

10.2.97

4 years ago

10.2.94

4 years ago

10.2.95

4 years ago

10.2.92

4 years ago

10.2.93

4 years ago

10.2.96

4 years ago

10.2.91

4 years ago

10.2.90

4 years ago

10.2.89

4 years ago

10.2.88

4 years ago

10.2.87

4 years ago

10.2.85

4 years ago

10.2.86

4 years ago

10.2.84

4 years ago

10.2.83

4 years ago

10.2.81

4 years ago

10.2.82

4 years ago

10.2.80

4 years ago

10.2.79

4 years ago

10.2.78

4 years ago

10.2.76

4 years ago

10.2.77

4 years ago

10.2.75

4 years ago

10.2.74

4 years ago

10.2.73

4 years ago

10.2.72

4 years ago

10.2.70

4 years ago

10.2.71

4 years ago

10.2.69

4 years ago

10.2.68

4 years ago

10.2.67

4 years ago

10.2.66

4 years ago

10.2.65

4 years ago

10.2.64

4 years ago

10.2.62

4 years ago

10.2.63

4 years ago

10.2.61

4 years ago

10.2.60

4 years ago

10.2.59

4 years ago

10.2.58

4 years ago

10.2.57

4 years ago

10.2.56

4 years ago

10.2.51

4 years ago

10.2.54

4 years ago

10.2.55

4 years ago

10.2.52

4 years ago

10.2.53

4 years ago

10.2.50

4 years ago

10.2.49

4 years ago

10.2.48

4 years ago

10.2.47

4 years ago

10.2.46

4 years ago

10.2.45

4 years ago

10.2.44

4 years ago

10.2.43

4 years ago

10.2.40

4 years ago

10.2.41

4 years ago

10.2.42

4 years ago

10.2.39

4 years ago

10.2.38

4 years ago

10.2.37

4 years ago

10.2.36

4 years ago

10.2.34

4 years ago

10.2.35

4 years ago

10.2.32

4 years ago

10.2.33

4 years ago

10.2.30

4 years ago

10.2.31

4 years ago

10.2.29

4 years ago

10.2.27

4 years ago

10.2.28

4 years ago

10.2.26

4 years ago

10.2.25

4 years ago

10.2.24

4 years ago

10.2.23

4 years ago

10.2.22

4 years ago

10.2.21

4 years ago

10.2.20

4 years ago

10.2.19

4 years ago

10.2.18

4 years ago

10.2.17

4 years ago

10.2.16

4 years ago

10.2.14

4 years ago

10.2.15

4 years ago

10.2.13

4 years ago

10.2.12

4 years ago

10.2.11

4 years ago

10.2.9

4 years ago

2.2.3

4 years ago

10.2.10

4 years ago

10.2.8

4 years ago

10.2.7

4 years ago

10.2.6

4 years ago

10.2.5

4 years ago

10.2.4

4 years ago

10.2.3

4 years ago

10.2.2

4 years ago

10.2.1

4 years ago

10.2.0

4 years ago

10.1.0

4 years ago

10.0.11

4 years ago

10.0.10

4 years ago

10.0.9

4 years ago

10.0.7

4 years ago

10.0.8

4 years ago

10.0.6

4 years ago

10.0.5

4 years ago

10.0.2

4 years ago

10.0.3

4 years ago

10.0.4

4 years ago

1.0.0

4 years ago

10.0.1

4 years ago

1.0.0-dev.1

4 years ago

2.2.2

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.2

5 years ago

1.7.1

5 years ago

1.7.0

5 years ago

1.6.2

6 years ago

1.6.1

6 years ago

1.6.0

6 years ago

1.5.0

6 years ago

1.4.0

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago