• Stars
    star
    41
  • Rank 646,125 (Top 14 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Lumberjack is a logging interface for shell scripts

Lumberjack

Lumberjack is a logging interface for shell scripts.

About

Lumberjack handles your logs for you. When you set a logfile and log level, it is linked to the process ID of the script in which it is run, so that further calls need only contain the message to append to the logfile.

Installation

Requirements

Although lumberjack can be used within any script, ZSH 5+ must be installed and in your $PATH in order to run it.

zulu install lumberjack

Manual

Simply move the lj executable to somewhere in your $PATH.

git clone https://github.com/molovo/lumberjack
mv lumberjack/lj /usr/local/bin

Usage

Lumberjack should be called a first time to set the log file and level.

lj --file /usr/local/var/log/myawesomescript.log --level critical

Once done, further calls need only contain the level at which that log applies, and the message.

lj critical ‘Something went wrong’

The level is any one of emergency, alert, critical, error, warning, notice, info or debug. If the level is not set, the default is notice. Likewise, when logging you can omit the first parameter, and a level of notice is assumed.

lj 'This is a notice'

If a message is logged at a level lower than that which is set, it is gracefully ignored. This allows you to dynamically set the log level based on parameters passed to your script.

#!/usr/bin/env zsh

# Parse CLI options
zparseopts -D v=verbose -verbose=verbose

# Set the log level
local level=critical
[[ $verbose ]] && level=notice

# Initialise lumberjack
lj --file ~/log --level $level

lj 'This is a notice'

In the above example, running script.zsh would result in nothing being output to the log. Running script.zsh --verbose would increase the log level, allowing the notice to be appended to the log file.

TODO

  • Allow log format to be modified
  • Add additional drivers for send logs to services like Sentry etc.

License

Copyright (c) 2016 James Dinsdale [email protected] (molovo.co)

Lumberjack is licensed under The MIT License (MIT)

Team

More Repositories

1

revolver

A progress spinner for ZSH scripts
Shell
140
star
2

crash

Proper error handling, exceptions and try/catch for ZSH
Shell
60
star
3

filthy

A disgustingly clean ZSH prompt
Shell
40
star
4

bushwick

# Bushwick
CSS
31
star
5

tipz

Gives you helpful hints when you execute a command for which you have an alias defined
Shell
26
star
6

browserWrapper

browserWrapper plugin, by @molovo
CSS
21
star
7

zlint

A linter and code style checker for ZSH
Shell
16
star
8

taken

An anchor CMS theme
CSS
15
star
9

roots-image-pipeline

Image pipeline plugin for Roots (http://roots.cx)
CoffeeScript
13
star
10

zvm

The ZSH version manager
Shell
13
star
11

color

A small zsh script for styling strings
Shell
12
star
12

anchor-comments

A plugin utilising the existing Anchor CMS comments functionality to provide inline comments within articles.
JavaScript
10
star
13

sublime-zsh

Provides native ZSH autocompletion and snippets
Shell
10
star
14

herd

A simple module to help with running multi-threaded processes in Crystal
Crystal
7
star
15

browserWrapper-lite

CSS
6
star
16

crayon

A collection of helpers for building pretty command-line tools in Crystal.
Crystal
6
star
17

zshbuild

A helper tool for building large ZSH projects from source
Shell
5
star
18

melody

A simple SASS framework
CSS
4
star
19

micro-stripe-payment

An asynchronous HTTP micro-service for accepting Stripe payments on static sites.
JavaScript
4
star
20

consumer

A tiny REST API consumer for JavaScript projects
JavaScript
4
star
21

accidents

Pretty error handling for command-line PHP apps.
PHP
4
star
22

.files

Vim Script
3
star
23

magic-roundabout

A tiny JavaScript carousel
JavaScript
3
star
24

tiny

A Crystal module to help you build multi-threaded HTTP micro-services
Crystal
3
star
25

done

A simple helper script to send a notification when a long-running command completes
Shell
2
star
26

www

CSS
2
star
27

graphite

A collection of helpers for building pretty command-line tools in PHP.
PHP
2
star
28

browserWrapper-site

HTML
2
star
29

live-node-list

An alternative to NodeList which keeps collections up to date when changes to the DOM occur
JavaScript
2
star
30

alternatone-stark-sea-syntax

CSS
1
star
31

timeme

TimeMe,
JavaScript
1
star
32

phake

A PHP task runner inspired by Make, Rake et al.
PHP
1
star
33

crsh

Crystal
1
star
34

object

HTML
1
star
35

insert-sudo

A little zsh snippet to prepend sudo to the current command
Shell
1
star
36

Dates

A polyfill to recreate Google Chrome's keyboard input behaviour on date inputs across other browsers
JavaScript
1
star
37

amnesia

A lightweight, standalone caching library for PHP 5.5+
PHP
1
star
38

load-graph

Shell
1
star
39

interrogate

A lightweight, standalone ORM for PHP 5.5+
PHP
1
star
40

dateme

Simple, non-invasive JavaScript date sanitisation.
JavaScript
1
star