exologger 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/exologger.rb +27 -0
- data/test/exologger_test.rb +40 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a0ea86ab7c2ee081011c5e0cd113bb90c205039b
|
4
|
+
data.tar.gz: 545aae4d51274a5ea754e58b9f475f21578ed0c9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2303cdce8dfdb6b08618d7d4d7d60dfed0a0ad62668541fa320fc032684284540d7d77cb30fb4839da8f4457af67eb4d54f23878109edf33293d60c29bd7b7ce
|
7
|
+
data.tar.gz: f0fbd97df08008963f2eff370471c3e4800476ca4381ce2d2a65fe5cfa0cfab051b04a10c00dc80098a43598b748ee98c541d57b5604b724bf6391f4557ae05e
|
data/lib/exologger.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'log4r'
|
3
|
+
|
4
|
+
$pattern_formatter_params = {:pattern => "%l, %d, %c, %M", :date_pattern => "%Y-%m-%d %H:%M:%S"}
|
5
|
+
$pattern_formatter = Log4r::PatternFormatter.new $pattern_formatter_params
|
6
|
+
$stdout_outputter = Log4r::Outputter.stdout
|
7
|
+
$stdout_outputter.formatter = $pattern_formatter
|
8
|
+
|
9
|
+
module Exologger
|
10
|
+
|
11
|
+
# The method returns a log4r logger which outputs to stdout in a
|
12
|
+
# standard format followed across all services at Exotel
|
13
|
+
# log4r ref: http://log4r.rubyforge.org/manual.html
|
14
|
+
def self.get_logger(name)
|
15
|
+
raise ArgumentError, "Logger must have a name", caller if name.nil?
|
16
|
+
exologger = Log4r::Logger.new name
|
17
|
+
exologger.outputters = $stdout_outputter
|
18
|
+
return exologger
|
19
|
+
end
|
20
|
+
|
21
|
+
# standard formatter to be used across all services. If you are using a a custom
|
22
|
+
# outputter, you should configure the outputter with the formatter returned
|
23
|
+
# by this method
|
24
|
+
def self.get_formatter
|
25
|
+
return $pattern_formatter
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative "../lib/exologger.rb"
|
3
|
+
|
4
|
+
class ExologgerTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def testLoggerInstantiation
|
7
|
+
logger = Exologger.get_logger "logger1"
|
8
|
+
assert_instance_of(Log4r::Logger, logger, 'logger is not an instance of log4r')
|
9
|
+
assert_equal(1, logger.outputters.size, "Expected only one outputter. But, found more than one")
|
10
|
+
assert_instance_of(Log4r::StdoutOutputter, logger.outputters.first, 'outputter is not an instance of StdoutOutputter')
|
11
|
+
assert_instance_of(Log4r::PatternFormatter, logger.outputters.first.formatter, 'formatter is not an instance of PatternFormatter')
|
12
|
+
assert_equal("logger1", logger.name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def testLogMessageFormat
|
16
|
+
logger = Exologger.get_logger "logger2"
|
17
|
+
stringIO = StringIO.new
|
18
|
+
stringIOOutputter = Log4r::IOOutputter.new("stringio", stringIO)
|
19
|
+
stringIOOutputter.formatter = Exologger.get_formatter
|
20
|
+
logger.outputters = [stringIOOutputter]
|
21
|
+
logger.debug "test message1"
|
22
|
+
if !(stringIO.string =~ /DEBUG, [0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}, logger2, test message1/)
|
23
|
+
logs = stringIO.string
|
24
|
+
assert(false, "wrong log message format: #{logs}")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def testMultiLineLogMessage
|
29
|
+
logger = Exologger.get_logger "logger3"
|
30
|
+
stringIO = StringIO.new
|
31
|
+
stringIOOutputter = Log4r::IOOutputter.new("stringio", stringIO)
|
32
|
+
stringIOOutputter.formatter = Exologger.get_formatter
|
33
|
+
logger.outputters = [stringIOOutputter]
|
34
|
+
logger.info "test multiline message \n line1 \n line2 \t\n line3 \t\n\n"
|
35
|
+
if !(stringIO.string =~ /INFO, [0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}, logger3, test multiline message \n line1 \n line2 \t\n line3 \t\n\n/)
|
36
|
+
logs = stringIO.string
|
37
|
+
assert(false, "wrong log message format: #{logs}")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: exologger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Vishnu Gajendran
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: log4r
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: |-
|
28
|
+
A simple wrapper around Log4r logger to ensure
|
29
|
+
that all service logs follow a standard format
|
30
|
+
email: vishnu.gajendran@exotel.in
|
31
|
+
executables: []
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- lib/exologger.rb
|
36
|
+
- test/exologger_test.rb
|
37
|
+
homepage: http://rubygems.org/gems/exologger
|
38
|
+
licenses: []
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.5.1
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Logger used across services at Exotel
|
60
|
+
test_files: []
|