blog前有一日志,记的是 log4r 。因为各种原因,后面没有跟进了。但是调试程序老是用 puts 的话,实在是太不爽了。于是自己写了ruby的logger。
先说配置文件:
注意配置文件的顶级keys是 dev, pro, ..., default,default的值应该是前面的某一个
stdout 为 1 表示会向终端输出,file没什么好说的。 roll_type 类似于 log4j 里的 roll file type(大概是这名字吧),这个值设置为 daily 的时候,下面的roll_param是不用填的,而把type设置为file size 的话,param 就需要填了,程序没有写默认值,这个值支持以K或者M作计量单位。
default 这个东东是,my_logger.rb会自行创建一个全局变量:@@log,这个变量对应的配置,就是default后的那个。
再看运行效果:
这个有普通的debug消息,也有配合了 active_record-2.2.2 运行时 ar 产生的 sql 消息。最后那个是带异常的消息,带异常的log方式和log4j的完全相同: log.error(msg, e)
程序使用方式:
1. my_logger.rb 的 130 行左右,require 'yaml' 附近,写的程序是读取配置文件的,这个根据应用,需要 **定制** 配置文件路径
2. 配置yml里的logger时,假定配置了一个名为 dblog 的logger,在程序里可以用 MyLogger.get("dblog") 的方法取得 logger
3. 配合 rails 使用的话, MyLogger这个类里面可能需要添加更多的方法
程序如下: