当前位置: 首页 > 知识库问答 >
问题:

Rails将文件定位到另一个目录

毋承基
2023-03-14

我的应用程序中有一个rails自定义记录器。

class ApplicationController < ActionController::API
  @@logger = nil

  def custom_logger
    return @@logger if @@logger
    FileUtils.touch(Rails.root.join('log/custom.json'))
    @@logger = Logger.new(Rails.root.join('log/custom.json'), shift_age = 'daily')
    @@logger.level = Logger::INFO
    @@logger.formatter = proc do |severity, datetime, progname, msg|
      "#{msg}\n"
    end
    @@logger
  end
end
custom_logger.info "My log message"
  • 路径-/ /current/log
  • 文件-custom.json custom.json.20210712

这是我的要求

  1. 旋转后的文件应该放在不同的位置,即/ /current/log/archive/custom.json.20210712
  2. 旋转文件的名称也应该有hour和min,也就是说,我需要custom.json.20210712,而不是custom.json.202107121020。格式化custom.json.{yyyyMMddHHmm,UTC}

共有1个答案

施飞鸿
2023-03-14

在实例化记录器时,第一个要求只将归档日志放在不同的路径中是不可能的。另一种方法是使用cronjob或background job。

另外,更改文件名的第二个要求可以通过在选项中传递shift_period_suffix键来实现。

    @@logger = Logger.new(Rails.root.join('log/custom.json'), shift_age = 'daily', shift_period_suffix: "%Y%m%d%H%m, %Z")
 类似资料:
  • 问题内容: 我的目标是每当文件滚动到此滚动文件时,该文件也会移动到另一个目录,因此在原始目录中始终只有。这可能使用吗?还是默认库中的另一个appender ? 问题答案: 我想你的意思是来自Log4J 如果您使用版本> = 1.2.16和log4j-extras,则可以使用此版本 重要的是 但是您必须确保该文件夹(在此示例中存在

  • 我正在使用QT,我无法找到如何将文件从一个目录复制到另一个目录?我怎样才能做到这一点?

  • 问题内容: 我想为我们的多TB文件服务器的结构创建一个克隆。我知道cp –parents可以移动文件及其父结构,但是有什么办法可以完整地复制目录结构? 我想复制到Linux系统,并且文件服务器安装在CIFS上。 问题答案: 您可以执行以下操作: 创建目录列表,然后 在目标上创建目录。

  • 问题内容: 我想将文件从Java中的一个位置复制到另一位置。做这个的最好方式是什么? 这是我到目前为止的内容: 这不会复制文件,执行此操作的最佳方法是什么? 问题答案: 您可以使用此(或任何变体): 另外,我建议您使用或代替使其兼容于多个操作系统. 由于您不确定如何临时存储文件,因此请查看: 要将a 个文件移动到单个目录中:

  • 问题内容: 我想使用Java将文件从一个目录复制到另一个目录(子目录)。我有一个包含文本文件的目录dir。我遍历dir中的前20个文件,并想将它们复制到dir目录中的另一个目录中,该目录是我在迭代之前创建的。在代码中,我想将(代表第ith个文本文件或审阅)复制到。我怎样才能做到这一点?似乎没有这样的功能(或者我找不到)。谢谢。 问题答案: 目前,这应该可以解决你的问题 从类阿帕奇公地IO库,因为1