1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# -*- encoding: utf-8 -*-
require 'logger'
module Aliyun
module Common
##
# Logging support
# @example
# include Logging
# logger.info(xxx)
module Logging
MAX_NUM_LOG = 100
ROTATE_SIZE = 10 * 1024 * 1024
# level = Logger::DEBUG | Logger::INFO | Logger::ERROR | Logger::FATAL
def self.set_log_level(level)
Logging.logger.level = level
end
# 设置日志输出的文件
def self.set_log_file(file)
@log_file = file
end
# 获取logger
def logger
Logging.logger
end
private
def self.logger
unless @logger
# Environment parameter ALIYUN_OSS_SDK_LOG_PATH used to set output log to a file,do not output log if not set
@log_file ||= ENV["ALIYUN_OSS_SDK_LOG_PATH"]
@logger = Logger.new(
@log_file, MAX_NUM_LOG, ROTATE_SIZE)
@logger.level = get_env_log_level || Logger::INFO
end
@logger
end
def self.get_env_log_level
return unless ENV["ALIYUN_OSS_SDK_LOG_LEVEL"]
case ENV["ALIYUN_OSS_SDK_LOG_LEVEL"].upcase
when "DEBUG"
Logger::DEBUG
when "WARN"
Logger::WARN
when "ERROR"
Logger::ERROR
when "FATAL"
Logger::FATAL
when "UNKNOWN"
Logger::UNKNOWN
end
end
end # logging
end # Common
end # Aliyun
|