Class: FlogRuby::LoggerFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/flog_ruby/logger_factory.rb

Class Method Summary collapse

Class Method Details

.default_levelObject



211
212
213
214
215
216
217
# File 'lib/flog_ruby/logger_factory.rb', line 211

def default_level
  if ENV['FLOG_LEVEL']
    l = ENV['FLOG_LEVEL'].upcase
    return Logger::Severity.const_get(l)
  end
  Logger::DEBUG
end

.get(biz_name = :stdout, level = nil) ⇒ Object

e.g. api, core, default: to STDOUT



187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/flog_ruby/logger_factory.rb', line 187

def get(biz_name = :stdout, level = nil)
  return Flogger.new(STDOUT) if biz_name.nil? || biz_name == :stdout

  biz_name = biz_name.to_sym
  findit = loggers[biz_name]
  return findit if findit

  level ||= default_level
  if syslog?
    logger = Syslogger.new(biz_name)
    logger.formatter = Syslogger::Formatter.new
    logger.level = level
  else
    log_path = root.join("#{biz_name}.log")
    logger = Flogger.new(log_path, 3, 10_240_000) #10M
    logger.formatter = Flogger::Formatter.new
    logger.level = level
    logger.logdev2.sync = true
  end

  logger.group = biz_name
  loggers[biz_name] = logger
end

.lget(filepath, opts = {}) ⇒ Object

获取有轮滚的logger



238
239
240
# File 'lib/flog_ruby/logger_factory.rb', line 238

def lget(filepath, opts = {})
  ::Logger.new(filepath, 3, 10_240_000)
end

.mget(biz_name = :stdout, level = Logger::DEBUG) ⇒ Object

just temp monitor log in: log/xx.log



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/flog_ruby/logger_factory.rb', line 220

def mget(biz_name = :stdout, level = Logger::DEBUG)
  return Flogger.new(STDOUT) if biz_name.nil? || biz_name == :stdout

  biz_name = biz_name.to_sym
  findit = mloggers[biz_name]
  return findit if findit

  # different path!!!
  log_path = Pathname.new('log').join("#{biz_name}.log")
  logger = Flogger.new(log_path, 3, 10_240_000) #10M

  logger.formatter = Flogger::Formatter.new
  logger.level = level
  logger.logdev2.sync = true
  mloggers[biz_name] = logger
end

.syslog?Boolean

Returns:

  • (Boolean)


242
243
244
245
246
# File 'lib/flog_ruby/logger_factory.rb', line 242

def syslog?
  return false if ENV['FLOG_NOT_SYSLOG']
  Rails.env.production? || Rails.env.staging? ||
    File.exist?('tmp/flog_using_syslog')
end

.tail(log_file, lines = nil) ⇒ Object



248
249
250
251
252
253
# File 'lib/flog_ruby/logger_factory.rb', line 248

def tail(log_file, lines = nil)
  return [] if log_file.blank?
  lines = lines.to_i
  lines = 10 if lines < 10
  `tail -n #{lines} #{log_file}`.to_s.split("\n").reverse
end

.user_klassObject



182
183
184
# File 'lib/flog_ruby/logger_factory.rb', line 182

def user_klass
  @user_klass ||= ::User
end