noddy 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +3 -2
- data/lib/noddy.rb +45 -7
- data/lib/noddy/constants.rb +4 -0
- data/lib/noddy/version.rb +1 -1
- data/noddy.gemspec +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -6,8 +6,7 @@ This is very much a work in progress, but is still usable.
|
|
6
6
|
|
7
7
|
TODO:
|
8
8
|
|
9
|
-
-
|
10
|
-
- Sepcifiy log format
|
9
|
+
- Sepcifiy log format (text, json etc)
|
11
10
|
|
12
11
|
## Installation
|
13
12
|
|
@@ -31,6 +30,8 @@ require "noddy"
|
|
31
30
|
Noddy.log_level = Noddy::DEBUG # Default: Noddy::INFO
|
32
31
|
Noddy.colour = true # Default: false
|
33
32
|
Noddy.timestamp = false # Default: true
|
33
|
+
Noddy.outputs = [STDOUT, Noddy::FILE] # Default [STDERR]
|
34
|
+
Noddy.outputs = [STDOUT, '/var/log/dca/test.log'] # Using a custom log path
|
34
35
|
|
35
36
|
Noddy.debug "I am just a debug message"
|
36
37
|
Noddy.info "I am an info message"
|
data/lib/noddy.rb
CHANGED
@@ -4,10 +4,6 @@ require "noddy/string"
|
|
4
4
|
|
5
5
|
module Noddy
|
6
6
|
class << self
|
7
|
-
def log_level=( level )
|
8
|
-
@level = level
|
9
|
-
end
|
10
|
-
|
11
7
|
def debug( msg )
|
12
8
|
log_message( msg, DEBUG )
|
13
9
|
end
|
@@ -29,6 +25,10 @@ module Noddy
|
|
29
25
|
end
|
30
26
|
|
31
27
|
|
28
|
+
def log_level=( level )
|
29
|
+
@level = level
|
30
|
+
end
|
31
|
+
|
32
32
|
def colour=( colour )
|
33
33
|
@colour = colour
|
34
34
|
end
|
@@ -37,14 +37,52 @@ module Noddy
|
|
37
37
|
@timestamp = timestamp
|
38
38
|
end
|
39
39
|
|
40
|
+
def outputs=( outputs = [] )
|
41
|
+
@outputs = outputs
|
42
|
+
end
|
43
|
+
|
40
44
|
private
|
41
45
|
def log_message( msg, level )
|
42
|
-
|
43
|
-
msg.colour!( level ) if @colour || COLOUR_DEFAULT
|
46
|
+
outputs = @outputs || OUTPUTS_DEFAULT
|
44
47
|
|
45
48
|
msg.timestamp! if @timestamp || TIMESTAMP_DEFAULT
|
46
49
|
|
47
|
-
|
50
|
+
outputs.each do |output|
|
51
|
+
case output
|
52
|
+
when STDOUT
|
53
|
+
if @colour || COLOUR_DEFAULT
|
54
|
+
STDOUT.puts msg.colour( level ) if level <= (@level || DEFAULT_LEVEL )
|
55
|
+
else
|
56
|
+
STDOUT.puts msg if level <= (@level || DEFAULT_LEVEL )
|
57
|
+
end
|
58
|
+
when STDERR
|
59
|
+
if @colour || COLOUR_DEFAULT
|
60
|
+
STDERR.puts msg.colour( level ) if level <= (@level || DEFAULT_LEVEL )
|
61
|
+
else
|
62
|
+
STDERR.puts msg if level <= (@level || DEFAULT_LEVEL )
|
63
|
+
end
|
64
|
+
when String
|
65
|
+
write_log_file( output, msg, level )
|
66
|
+
else
|
67
|
+
raise "Unknow output type of class #{output.class}"
|
68
|
+
end
|
69
|
+
end
|
48
70
|
end
|
71
|
+
|
72
|
+
def write_log_file( output, msg, level )
|
73
|
+
log_dir = File.dirname output
|
74
|
+
raise "Log file directory #{log_dir} does not exist" unless Dir.exist? log_dir
|
75
|
+
|
76
|
+
begin
|
77
|
+
File.open(output, 'a', 0644) do |f|
|
78
|
+
f.flock(File::LOCK_EX)
|
79
|
+
f.write msg + "\n"
|
80
|
+
f.flush
|
81
|
+
end
|
82
|
+
rescue Errno::EACCES => e
|
83
|
+
raise "Permissioned denided writing to #{output}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
49
87
|
end
|
50
88
|
end
|
data/lib/noddy/constants.rb
CHANGED
data/lib/noddy/version.rb
CHANGED
data/noddy.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Dave Avent"]
|
10
10
|
spec.email = ["davent@lumux.co.uk"]
|
11
11
|
spec.summary = %q{Noddy Logger logging library.}
|
12
|
-
spec.description = %q{
|
12
|
+
spec.description = %q{Noddy Logger is a very simple library to quickly output logs from your scripts and applications using colours, timestamps etc.}
|
13
13
|
spec.homepage = "https://github.com/davent/noddy"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -43,8 +43,8 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
-
description:
|
47
|
-
and
|
46
|
+
description: Noddy Logger is a very simple library to quickly output logs from your
|
47
|
+
scripts and applications using colours, timestamps etc.
|
48
48
|
email:
|
49
49
|
- davent@lumux.co.uk
|
50
50
|
executables: []
|