`

Ruby中打印日志:Logger的使用

    博客分类:
  • ruby
阅读更多

 

1.引入'logger'

 require 'logger'

2.日志输出到控制台还是文件

   logger = Logger.new(STDOUT)  #输出到控制台
   logger = Logger.new("log.txt")  #输出到文件,文件名log.txt
   logger = Logger.new(STDERR) #输出到屏幕
   
指定写入文件方式: 
  file = File.open('foo.log', File::WRONLY | File::APPEND)
  # To create new (and to remove old) logfile, add File::CREAT like;
  # file = open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
  logger = Logger.new(file)
 
3.日志生成周期
  logger = Logger.new('log.log', 'daily') #按天生成
  logger = Logger.new('log.log', 'weekly') #按周生成
  logger = Logger.new('log.log', 'monthly')#按月生成

 

4.指定日志大小及保留日志个数

   logger = Logger.new('foo.log', 10, 1024000) #保留10个日志文件,每个文件大小1024000字节

 

5.输出不同级别的日志

  logger.level = Logger::INFO

  logger.error("some desption")
  logger.fatal("an object #{obj}")
  logger.info("that's another instance obj #{obj}")

  logger.add(Logger::FATAL) { 'Fatal error!' }

 日志级别从大到小分别是:fatal、error、warn、info、debug

 
6.日志输出格式及时间格式
  默认日志格式:
  SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message
   修改时间格式:
    logger.datetime_format = "%Y-%m-%d %H:%M:%S"
        # e.g. "2004-01-03 00:54:26"
  修改日志格式:
   logger.formatter = proc { |severity, datetime, progname, msg|
    "#{datetime}: #{msg}\n"
  }
        # e.g. "Thu Sep 22 08:51:08 GMT+9:00 2005: hello world"
 

  
分享到:
评论

相关推荐

    Ruby-Faraday简单但灵活的HTTP客户端库支持多种后端

    Faraday是Ruby编程语言中的一款轻量级且高度可扩展的HTTP客户端库。它由Michael Hartl创建,设计目标是提供一个简洁而统一的接口,用于处理各种HTTP客户端后端,如Net::HTTP、Excon、HTTPClient等。这个库的名字...

    Log 日志配置

    4. 其他语言也有相应的日志库,如Node.js的winston、Ruby的logger等。 三、日志配置细节 1. 日志级别设置:根据需要调整日志级别,如在开发阶段通常使用DEBUG级别,生产环境中则一般设为INFO或WARN。 2. 输出目标...

    log4j的使用终极手册

    在这个例子中,我们首先通过`Logger.getLogger()`方法获取了一个名为`LogExample`的记录器对象,然后使用该记录器的不同方法(如`debug()`、`info()`、`warn()`、`error()`)来记录不同级别的日志信息。 通过以上...

    log4j详细说明文档

    在开发阶段,大量使用`DEBUG`级别的日志可以帮助开发者定位问题,但在生产环境中,过多的日志信息可能会占用大量资源。通过调整Logger的级别,可以在不影响程序运行的前提下,控制日志的输出,达到优化性能的目的。 ...

    rack-timesec-源码.rar

    Rack::Timesec可能会使用Ruby的`Kernel.puts`方法或者某种日志库如`logger`来实现这一功能。 5. **异常处理**:为了确保即使在出现错误时也能正确记录时间,Rack::Timesec可能会在`begin/rescue`块中进行时间计算和...

    log4j 介绍

    filter属性可以在每次打印日志时用来过滤日志事件是否应该被打印,而且filter可以自定义。appender-ref用于关联现有的appender,但只有实现了AppenderAttachable接口的Appender才能被关联,例如AsyncAppender。 Log...

    rails性能优化

    性能调优还需要借助各种基准测试工具,其中包括Rails自带的日志文件(需调试级别设置为Logger::DEBUG或更高)、Rails分析器工具(需要日志记录到syslog)、Rails基准测试脚本(位于script/benchmarker)、数据库供应...

    beautiful-log

    使用Beautiful::Log::Formatter您的回溯将变得整洁和易于理解。 仅显示并突出显示代码(app / ..)的文件路径。 路径不再冗长,而是从项目根目录缩小为相对路径。 状态码 您再也不会错过响应的安全性。 响应完成...

Global site tag (gtag.js) - Google Analytics