您的位置:首页 > 运维架构 > Linux

centos升级gcc到4.8.1(支持c++11)步骤

2014-01-28 23:10 639 查看
没有Java里的log4j那样的组件,调试程序的时候很难受,模仿Log4j的使用方法写的一个Ruby logger:

配置文件:

dev:
level: debug
stdout: 1
file: ./dev.log
roll_type: file_size
roll_param: 500K          # support K/M

pro:
level: info
stdout: 1
file: ./pro.log
roll_type: daily
roll_param:               # if use daily, this param should be null

default: pro

比较粗糙,自己感觉是差不多够当下用就可以了。

配置文件的顶级keys是 dev, pro, ..., default,default的值应该是前面的某一个

stdout 为 1 表示会向终端输出,file没什么好说的。 roll_type 类似于 log4j 里的 roll file type(大概是这名字),这个值设置为 daily 的时候,下面的roll_param是不用填的,而把type设置为file size 的话,param 就需要填了,程序没有写默认值,这个值支持以K或者M作计量单位。

default 这个东东是,logger会自行创建一个全局变量:@@log,这个变量对应的配置,就是default后的那个。

 

 

打印出来的消息格式:

//这个是普通的debug消息,也有配合了 active_record-2.2.2 运行时 ar 产生的 sql 消息。
DEBUG 09-06-10 13:04:56 my_logger.rb:151: debug msg.
DEBUG 09-06-10 13:04:57 abstract_adapter.rb:189:in `log_info':   Lang Load (0.1ms)   SELECT * FROM `langs` WHERE (`langs`.`id` = 88)

// 这个是带异常的消息:
ERROR 09-06-10 13:37:08 my_logger.rb:153: this is the error --asnvzxjvasjfs--:
Connection refused - connect(2)    /usr/lib/ruby/1.8/net/http.rb:560:in `initialize'
/usr/lib/ruby/1.8/net/http.rb:560:in `open'
/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
/usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
/usr/lib/ruby/1.8/net/http.rb:542:in `start'
/usr/lib/ruby/1.8/net/http.rb:1035:in `request'
/usr/lib/ruby/1.8/net/http.rb:845:in `post'
my_logger.rb:151

使用方式和log4j的完全相同: log.debug(msg); log.error(msg, e)

 

 

使用方式:

my_logger.rb 的 130 行左右,require 'yaml' 附近,写的程序是读取配置文件的,这个根据应用,需要 **定制
** 配置文件路径

配置yml里的logger时,假定配置了一个名为 dblog 的logger,在程序里可以用 MyLogger.get("dblog") 的方法取得 logger

配合 rails 使用的话, MyLogger这个类里面可能需要添加更多的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: