1
私はRails 2.3.8プロジェクトにlog4rを追加しました。私は2つのログファイルを作成したい。以下のアプリケーションにログインするためにlog4rで2つのログファイルを設定する
- (INFOメッセージ)(application.logで)
- エラーメッセージ(情報メッセージ以外のメッセージ)(errors.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 : PatternFormatter
application_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
、次はこのコードは正常に動作しますが、私はapplication.logで上に印刷される第2のメッセージをしたいと、それはどこ(errors.logで両方のメッセージを印刷ロガー
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"
の両方を初期化するためのコードです)。
1つのlog4rインスタンスで2つのログファイルを作成する簡単な方法はありますか?