exologger 0.1.1
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.
- 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: []
|