rails 写入日志函数
json_object={
"ip"=> "127.0.0.1",
"ports"=> '80,135',
"data"=>{"port"=>22,"item"=>["22","open","tcp","","ssh"]}
}
puts "json_object:#{ json_object.to_json}"
write_log("nmapresult.log",json_object.to_json)
Rails.logger.info("#{Time.now.strftime('%Y-%m-%d %H:%M:%S')} str:#{json_object.to_json}")
# file_name 文件名称 foreign_ips.txt
# data 要写入的数据 str
def write_log(file_name,data)
# /media/haima/34E401CC64DD0E28/site/go/src/ruby/fofapro/public/download
log_dir = File.expand_path(File.join(Rails.root.to_s, 'log'))
puts "write log success , logPath:#{log_dir}"
FileUtils.mkdir_p(download_dir,:mode=>2750) unless File.exist?(log_dir)
# /media/haima/34E401CC64DD0E28/site/go/src/ruby/rails_demo/log/file_name
file_path = File.expand_path(File.join(log_dir, file_name))
# 判断文件不存在创建,存在打开
if !File.exist?(file_path)
#读写模式。如果文件存在,则重写已存在的文件。如果文件不存在,则创建一个新文件用于读写。
foreign_ip_file = File.new(file_path, "w+")
else
#读写模式。如果文件存在,则文件指针被放置在文件的末尾。也就是说,文件是追加模式。如果文件不存在,则创建一个新文件用于读写。
foreign_ip_file = File.open(file_path, "a+")
end
foreign_ip_file.puts(data)
foreign_ip_file.close
end
end
解析json
json='{"ip":"127.0.0.1","ports":"80,135","data":{"port":22,"item":["22","open","tcp","","ssh"]}}'
str22 = JSON.parse(json)
puts "str22 #{str22}"
puts "str23 #{str22['ports']}"
输入结果
str22 {"ip"=>"127.0.0.1", "ports"=>"80,135", "data"=>[{"port"=>22, "item"=>["22", "open", "tcp", "", "ssh"]}]}
str23 80,135
[Haima的博客]
http://www.cnblogs.com/haima/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-07-11 Linux的压缩/解压缩文件处理 zip & unzip
2020-07-11 Ubuntu的apt-get/yarm/wget命令详解