在ruby中格式化记录器

时间:2015-08-12 19:09:16

标签: ruby multithreading logging

我在ruby中有简单的服务器,包含记录器。我正在格式化记录器以包含服务器从客户端接收的字符串的一部分。这是红宝石2.0.0

IDataObject originalClip = Clipboard.GetDataObject();
Clipboard.SetImage(img);
rtb.Paste();
Clipboard.SetDataObject(originalClip);

如果我每秒运行对此服务器发出100个请求,则记录器似乎无法跟上。我在日志文件中得到的是:

logger = Logger.new(my_file, 3, 2048000)
logger.level = Logger::DEBUG
logger.info("Starting server.")

server = TCPServer.new 2000

loop do

  Thread.start(server.accept) do | client|

    user_req  = client.recvfrom(2048)[0].chomp

    # req_id is unique
    user_req_id = user_req[0..5]

    logger.formatter = proc do |severity, datetime, progname, msg|
      date_format = datetime.strftime("%Y-%m-%d %H:%M:%S.%6N")
      "#{severity} [ #{date_format} ] -- [ #{user_req_id} ] ## #{msg}\n"
      end

    logger.info("=1========== #{user_req_id}")
    logger.info("=2========== #{user_req_id}")
    logger.info("=3========== #{user_req_id}")
    client.close

  end
end
消息中的

user_req_id是正常的,但在格式化的记录器中不正确。我该怎么做才能解决它?

0 个答案:

没有答案