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

rails 写入日志函数的更多相关文章

  1. LR中日志设置和日志函数

    LR中日志参数的设置与使用 1.Run-Time Setting日志参数的设置 在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本 ...

  2. winfrom存储txt日志函数

    参考微信支付SDK的代码,抽取出来的winform存储记事本日志函数: #region 存储日志 public string path = Application.StartupPath + &quo ...

  3. ZH奶酪:PHP error_log()将错误信息写入日志文件

    error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. bool error_log ( string $message [, int $messag ...

  4. python 写入日志的问题 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence

    最近,使用python的logging模块,因为这个写入日志写完后就没有管它.在存储日志信息的时候,一直提示: UnicodeEncodeError: 'gbk' codec can't encode ...

  5. java--何时处理Exception(哪一个层级),包装的基础类处理任务尽可能简洁,写入日志,检查null等运行时异常

    1. 运行时异常和受检异常 2. 提前预防运行时异常.最常发生的是NPE,而检查NPE是程序员的基本职责.其他的,如除0等运行时异常的检查,需要程序员仔细检查,每个函数都得检查(除非可以确定不会有空指 ...

  6. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  7. JS写入日志

    try { var WSShell = WScript.CreateObject("WScript.Shell"); var FileSys = WScript.CreateObj ...

  8. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  9. C#向文本文件中写入日志

    今天看了一篇文章,说的是使用微软自带的日志类写日志,然后晚上我就花了2个多小时自己动手试了一下,然后模仿者自己封装了一个类库. 下面是自己封转的类: /***** * 创建人:金河 * 创建日期:20 ...

  10. VB6-AppendToLog 通过API写入日志

    工作中免不了需要为自己的程序添加日志,我也从网上扒拉了一个老外写的模块,修改修改了下,凑合用吧. Option Explicit '********************************** ...

随机推荐

  1. KingbaseES V8R6集群运维案例之---repmgrd进程启动无法访问共享内存

    案例说明: KingbaseES V8R6集群在启动repmgrd进程时,出现'unable to write to shared memory'故障,导致repmgrd进程启动终止. 适用版本: K ...

  2. 【已解决】启动Hmaster失败 master.HMaster: Unhandled exception. Starting shutdown.

  3. Java也可以像python般range出连续集合

    Java lamada:IntStream --range(int startInclusive, int endExclusive):前包后不包 IntStream.range(0, 10).for ...

  4. 中文GPTS,字节中文扣子Coze使用全教程

    字节出自己的GPTS了,名字英文名叫coze,中文名叫"扣子".和OpenAI的GPTS类似.具有可定制性和完成特定任务的强大功能,它提供了一种新的GPT方式,可以让用户根据自己的 ...

  5. JS判断浏览器是否是IE

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. configparser封装后报错:configparser.NoSectionError: No section: 'LoginElement'

    前言 这是目录结构 先贴一下源代码 # read_ini.pyimport configparser class ReadIni(): """读取 ini.ini 配置文 ...

  7. pc=mobile+pad自适应布局:页面结构与打开方式

    pc=mobile+pad自适应布局 在这篇文章,咱们重点聊聊自适应布局的页面结构,以及打开页面的几种方式.关于pc=mobile+pad自适应布局的起源.概念.效果,参见文章:自适应布局:pc = ...

  8. HarmonyOS多音频播放并发政策及音频管理解析

      音频打断策略 多音频并发,即多个音频流同时播放.此场景下,如果系统不加管控,会造成多个音频流混音播放,容易让用户感到嘈杂,造成不好的用户体验.为了解决这个问题,系统预设了音频打断策略,对多音频播放 ...

  9. triple loss

    Triplet Loss是深度学习中的一种损失函数,用于训练差异性较小的样本,如人脸等, Feed数据包括锚(Anchor)示例.正(Positive)示例.负(Negative)示例,通过优化锚示例 ...

  10. 详解K8s 镜像缓存管理kube-fledged

    本文分享自华为云社区<K8s 镜像缓存管理 kube-fledged 认知>,作者: 山河已无恙. 我们知道 k8s 上的容器调度需要在调度的节点行拉取当前容器的镜像,在一些特殊场景中, ...