我有一个关于在将错误消息写入日志文件时使用logger库的问题。
我正在尝试建立数据库连接,我想在日志文件中打印成功或失败消息。例如,如果用户输入了错误的数据库端口,则无法建立数据库连接。在这种情况下,我想在日志文件中打印"NativeException: java.sql.SQLException: The Network Adapter could not establish the connection"
错误。
以下是我正在执行此操作的代码:
url = "jdbc:oracle:thin:#{host}:#{port}/#{db}"
log = Logger.new('log.txt')
log.level = Logger::WARN
con_props = java.util.Properties.new
con_props.setProperty("user", usr)
con_props.setProperty("password", pwd)
conn=Java::Oracle.jdbc::OracleDriver.new.connect("#{url}", con_props)
log.error "#{conn}"
这会创建日志文件,但不会在其中写入消息。有人可以帮我吗?
Logfile如下所示:
# Logfile created on 2014-03-10 12:07:30 -0700 by logger.rb/v1.2.7
答案 0 :(得分:1)
如果我理解正确,您希望在连接失败时打印错误。如果是这种情况 - 你需要抓住Exception
:
url = "jdbc:oracle:thin:#{host}:#{port}/#{db}"
log = Logger.new('log.txt')
log.level = Logger::INFO
con_props = java.util.Properties.new
con_props.setProperty("user", usr)
con_props.setProperty("password", pwd)
begin
conn=Java::Oracle.jdbc::OracleDriver.new.connect("#{url}", con_props)
log.info "connection established!"
rescue => e
log.error "Connection failed - #{e}"
raise e
end
要创建附加到现有文件的Logger
,请阅读documentation:
为指定文件创建记录器。
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)