Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby日志记录在时间关键型多线程应用程序中_Ruby_Multithreading_File_Logging_Time Critical - Fatal编程技术网

Ruby日志记录在时间关键型多线程应用程序中

Ruby日志记录在时间关键型多线程应用程序中,ruby,multithreading,file,logging,time-critical,Ruby,Multithreading,File,Logging,Time Critical,我必须记录在许多线程中运行的应用程序的活动。最好的方法是什么?可能不可能所有线程都登录到一个文件中,因为它们会相互锁定?那么,最好为每个线程使用单独的文件吗 我在一个线程目前调用的方法中使用它: f=File.open(...) f.puts "log message" f.close 所有线程都在调用此方法。我将把线程号附加到文件名中,这样每个线程都会创建自己的文件。当线程调用此方法并向其提供新的日志信息时,将调用此方法。然后方法打开文件,写入信息并再次关闭它。

我必须记录在许多线程中运行的应用程序的活动。最好的方法是什么?可能不可能所有线程都登录到一个文件中,因为它们会相互锁定?那么,最好为每个线程使用单独的文件吗

我在一个线程目前调用的方法中使用它:

     f=File.open(...)
     f.puts "log message"
     f.close

所有线程都在调用此方法。我将把线程号附加到文件名中,这样每个线程都会创建自己的文件。当线程调用此方法并向其提供新的日志信息时,将调用此方法。然后方法打开文件,写入信息并再次关闭它。然而,在时间紧迫的应用程序中,打开和关闭文件是否很耗时?或者这不值得关注吗?

Ruby标准记录器似乎是。是否有理由寻找不同的解决方案?我可以使用它,但现在不要使用它,因为我不需要Logger拥有的所有功能,所以我的方法看起来更轻量级。在我的例子中,我认为当在同一个文件中写入时,线程正在互相等待。若记录器将写入同一个文件,那个么线程不会彼此等待吗?我对这个多线程的东西还很陌生,Ruby标准记录器似乎是。是否有理由寻找不同的解决方案?我可以使用它,但现在不要使用它,因为我不需要Logger拥有的所有功能,所以我的方法看起来更轻量级。在我的例子中,我认为当在同一个文件中写入时,线程正在互相等待。若记录器将写入同一个文件,那个么线程不会彼此等待吗?我对这个多线程的东西很陌生。