log2json-loggers 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/log2json/railslogger.rb +7 -13
- metadata +1 -1
data/lib/log2json/railslogger.rb
CHANGED
@@ -8,34 +8,27 @@
|
|
8
8
|
#
|
9
9
|
|
10
10
|
require 'logger'
|
11
|
-
|
11
|
+
|
12
12
|
module Log2Json
|
13
13
|
|
14
14
|
def self.log_formatter
|
15
15
|
proc do |severity, datetime, progname, msg|
|
16
16
|
"#{datetime.strftime('%Y-%m-%dT%H:%M:%S%z')}: [#{severity}] #{$$} #{msg.gsub(/\n/, '#012')}\n"
|
17
|
+
# Note: Following rsyslog's convention, all newlines are converted to '#012'.
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
# Create a custom logger that
|
21
|
-
#
|
21
|
+
# Create a custom logger that uses its own formatting for easier parsing
|
22
|
+
# by a log2json log monitoring script.
|
22
23
|
#
|
23
24
|
def self.create_custom_rails_logger(config)
|
24
|
-
# Do what railties' bootstrap.rb does to initialize a default logger for a Rails app.
|
25
25
|
path = config.paths["log"].first
|
26
26
|
unless File.exist? File.dirname path
|
27
27
|
FileUtils.mkdir_p File.dirname path
|
28
28
|
end
|
29
|
-
|
30
|
-
f.binmode
|
31
|
-
f.sync = true # make sure every write flushes
|
32
|
-
|
33
|
-
logger = ActiveSupport::TaggedLogging.new(
|
34
|
-
ActiveSupport::BufferedLogger.new(f)
|
35
|
-
)
|
36
|
-
logger.level = ActiveSupport::BufferedLogger.const_get(config.log_level.to_s.upcase)
|
37
|
-
|
29
|
+
logger = ::Logger.new(path)
|
38
30
|
logger.formatter = ::Log2Json::log_formatter
|
31
|
+
logger
|
39
32
|
end
|
40
33
|
|
41
34
|
# Simiar to the custom rails logger, but for unicorn.
|
@@ -43,6 +36,7 @@ module Log2Json
|
|
43
36
|
def self.create_custom_unicorn_logger(config)
|
44
37
|
logger = ::Logger.new(config.set[:stderr_path])
|
45
38
|
logger.formatter = ::Log2Json::log_formatter
|
39
|
+
logger
|
46
40
|
end
|
47
41
|
|
48
42
|
|