我在Rails 2.3.8项目中添加了log4r。我想要创建2个日志文件。
用于应用程序登录(INFO消息)的(application.log)
下面是每个记录器的yml配置文件
error_config.yml (errors.log)
# *** YAML2LOG4R ***
error_config:
# define all pre config ...
pre_config:
custom_levels:
- DEBUG
- INF
- PRT
- WRN
- ERR
- FAT
global:
level: DEBUG
root :
level: DEBUG
parameters:
- name : x
value : aaa
- name : y
value : bbb
# define all loggers ...
loggers:
- name : mylogger
level : DEBUG
additive : 'false'
trace : 'false'
outputters:
- stderr
- logfile
# define all outputters (incl. formatters)
outputters:
- type : StderrOutputter
name : stderr
level : DEBUG
only_at :
- INF
- WRN
- FAT
formatter:
date_pattern: '%y%m%d %H:%M:%S'
pattern : '%d %l: %m '
type : PatternFormatter
- type : DateFileOutputter
name : logfile
level : DEBUG
date_pattern: '%Y%m%d'
trunc : 'false'
dirname : "/home/sameera/workspace/project/log"
filename : "errors.log"
formatter :
date_pattern: '%m/%d/%Y %H:%M:%S'
pattern : '%d %l - %m'
type : PatternFormatterapplication_config.yml (application.log)
# *** YAML2LOG4R ***
application_config:
# define all pre config ...
pre_config:
custom_levels:
- DEBUG
- INF
- PRT
- WRN
- ERR
- FAT
global:
level: DEBUG
root :
level: DEBUG
parameters:
- name : x
value : aaa
- name : y
value : bbb
# define all loggers ...
loggers:
- name : application
level : DEBUG
additive : 'false'
trace : 'false'
outputters:
- stderr
- logfile
# define all outputters (incl. formatters)
outputters:
- type : StderrOutputter
name : stderr
level : DEBUG
only_at :
- INF
- WRN
- FAT
formatter:
date_pattern: '%y%m%d %H:%M:%S'
pattern : '%d %l: %m '
type : PatternFormatter
- type : DateFileOutputter
name : application
level : DEBUG
date_pattern: '%Y%m%d'
trunc : 'false'
dirname : "/home/sameera/workspace/project/log"
filename : "application.log"
formatter :
date_pattern: '%m/%d/%Y %H:%M:%S'
pattern : '%d %l - %m'
type : PatternFormatter下面是初始化两个记录器的代码
h = YAML.load(File.open("config/error_config.yml"))
app_log = YAML.load(File.open("config/application_config.yml"))
log_cfg = YamlConfigurator
log_cfg['TEST'] = 'foobar'
log_cfg.decode_yaml h['error_config']
applog_cfg = YamlConfigurator
applog_cfg['TEST'] = 'foobar'
applog_cfg.decode_yaml app_log['application_config']
$ERRORLOG = Log4r::Logger['error_config']
$APPLICATION = Log4r::Logger['application_config']
$ERRORLOG.debug "info message"
$APPLICATION.debug "info message"这段代码运行良好,但它在errors.log中同时打印这两条消息(我希望第二条消息在application.log上打印)。
是否有通过一个log4r实例拥有2个日志文件的简单方法?
发布于 2012-01-08 23:37:54
我注意到您的"error_config.yml“文件将输出级别定义为”调试“。
loggers:
- name : mylogger
level : DEBUG也许你想让它成为“警告”?
loggers:
- name : mylogger
level : WARN附注:^_^命名会议非常重要。请友好地阅读你的代码。(通常是你自己)。哪个更清楚?
h = YAML.load(File.open("config/error_config.yml"))
error_config = YAML.load(File.open("config/error_config.yml"))https://stackoverflow.com/questions/8710123
复制相似问题