Ruby on rails开发从头来(windows)(三十五)- 日志(Log)

Rails内建了Log功能,或者更准确的说,Rails暴露了Logger对象,该对象可以在所有的Rails程序中使用。

Logger是从ruby中移植过来的一个简单的Log框架(你可以在ruby的命令行里键入ri Logger来查看标准库的文档),对于我们而言,我们只需要知道Logger能针对warnning,info,error或者fatal level来生成Log信息,然后确定向Log文件中写入哪个级别的Log信息。

logger.warn("I don't think that's a good idea")

logger.info("Dave's trying to do something bad")

logger.error("Now he's gone and broken it")

logger.fatal("I give up")

在一个Rails程序中,Log信息被写入到Log文件夹的文件中,具体是哪个文件,依赖于你当前的程序的环境配置,如果是development环境下,那么,log信息就会被写入到log\development.log文件中,相对应的,test环境下,log文件为log\test.log,production环境下,log文件为log\production.log

时间: 2024-08-04 11:07:36

Ruby on rails开发从头来(windows)(三十五)- 日志(Log)的相关文章

Ruby on rails开发从头来(三十八)- ActiveRecord基础(列和属性)

ActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,也许你会注意到我们的Order类没有提及关于orders表的任何东西,这是因为ActiveRecord在运行时来确定这些对应关系,Active Record将数据库中的模式反应到类中. 我们的orders表可能使用下面的sql来创建: create table orders ( id int not null auto_increment, name varchar(100) not null, email va

Ruby on rails开发从头来(四十五)- ActiveRecord基础(读取记录)

读取记录包括指定那些特定的数据是你感兴趣的,你给Active Record指定标准,Active Record再返回给你一些对象,其中包含了符合条件的记录的数据. 在一个表中检索数据的最简单的办法就是指定主键,任何一个Model都支持find()方法,该方法支持一个或多个主键值,如果只指定了一个主键,将会返回对应的对象,如果指定了多个主键给find方法,该方法一组相应的对象.注意,当没有任何符合条件的数据的时候,将会抛出一个RecordNotFound异常,所以如果find方法没有抛出这个异常的

Ruby on rails开发从头来(三十九)- ActiveRecord基础(访问属性)

如果在一个model对象中有一个名为balance的属性,你可以通过索引操作符来获取该属性的值,你可以使用一个字符串或者标记,在这里我们使用标记,例如: account[:balance] #=> 获取值 account[:balance] = 0.0 #=> 设置值 但是这种常见的代码是不提倡的,更好的是这样,利用ruby的访问方法: account.balance #=> 获取值 account.balance = 0.0 #=>设置值 在这里,我们使用了两种方法来获取属性的值

Ruby on rails开发从头来(三十七)- ActiveRecord基础

ActiveRecord是Rails提供的一个对象关系映射(ORM)层,从这篇开始,我们来了解Active Record的一些基础内容,连接数据库,映射表,访问数据等. Active Record使用基本的ORM模式:表映射成类,行映射成为对象,列映射成对象的属性.与很多大量使用配置的ORM库不同,Active Record最小化了配置.想象一下,有一个使用Active Record的程序把Mysql数据库中的orders表转换到类,通过制定的ID查找到order,设定order的名称,然后保存

Ruby on rails开发从头来(四十)- ActiveRecord基础(Boolean属性)

一些数据库支持boolean类型,而另一些则不支持,这使得Active Record要抽象boolean类型变得困难.例如,如果数据库不支持boolean类型,有的开发者使用char(1)来替代,而内容使用"t"和"f"来表示true和false,而另外一些开发者使用integer类型,0是false,1是true.即使数据库支持boolean类型,在内部也许还是使用0和1来存储. 在Ruby里,在条件判断中,数字0和字符f都被认为是true值,这就意味着如果你直接

Ruby on rails开发从头来(四十九)- ActiveRecord基础(行数和再加载数据)

Active Record提供了两个方法来获取符合条件的记录的条数:count()和count_by_sql().例如: c1 = Order.count c2 = Order.count(["name = ?", "Dave Thomas"]) c3 = LineItem.count_by_sql("select count(*) " + " from line_items, orders " + " where

Ruby on rails开发从头来(四十八)- ActiveRecord基础(动态查询)

数据库上最常运行的查询莫过于根据指定条件返回符合的结果集,查询可能是返回所有名字为'dave'的订单,或者是某个博客上所有标题含Rails的post,在很多其他的框架和程序设计语言中,你需要创建sql来执行查询,Active Record利用了ruby语言所包含的动态能力来做这些事. 例如,我们的Order Model包含了诸如name,email,address这样的属性,我们可以使用这些名字对应的find方法来查询,例如: order = Order.find_by_name("Dave T

Ruby on rails开发从头来(四十六)- ActiveRecord基础(SQL和Active Record)

想象一下Active Record是如何处理SQL的,我们来看看find方法的:conditions参数,调用的时候像这样:find(:all,:conditions=>-),这里的:conditions参数决定了find方法将返回哪些记录,它相当于Sql语句的where部分,例如,要获取所有的名字为Dave,pay_type为po的订单,我们这样写: pos = Order.find(:all,:conditions => "name = 'dave' and pay_type =

Ruby on rails开发从头来(四十四)- ActiveRecord基础(创建记录)

Active Record使得实现CRUD的数据库基本操作变得简单,在下面的几节里我们使用Mysql数据库中的orders表来进行CRUD的操作,这次先看创建(Create). 我们假想有一个Model,名为Order: class Order < ActiveRecord::Base end 在面向对象的模型里,表对应类,表中的行对应类的对象.我们可以通过创建一个类的对象来创建一条记录.对orders表,我们可以使用Order.New()方法来创建一个Order的对象,也就对应了orders表

Ruby on rails开发从头来(四十二)- ActiveRecord基础(主键和ID)

也许你已经注意到了,在我们前面的代码中,数据库定义里都使用了一个integer型的字段id作为主键,这是Active Record的一个约定. 或许你要问,为什么不用订单编号或者某个有意义的列来作为主键呢?使用id作为主键有一个很重要的原因,就是如果使用具有内在格式的主键的话,随着时间推移,有可能其中的规则也会变化.例如,使用ISBN号码来给book表做主键,毕竟ISBN号码是唯一的,但是,有可能当一本书写完后,美国的出版业已经发展了并且在所有的ISBN号码后又附加了一位数字. 如果我们使用了I