我怎么知道哪个线程称为我的Log方法?

时间:2011-12-30 07:25:24

标签: java multithreading logging

我有一个Log类,它有几个静态方法,可以帮助记录有关我程序的信息。

我的问题是我有2个线程正在运行,并且它们都向我的Log类发送请求以记录信息。

我想让我的Log类显示哪些线程正在记录哪些行。

我应该怎么做才能实现这项功能?

我的代码基本上是这样的:

 public class Log {
     public static void log ( String tag , Object message ) 
     {
         String lineToPrint = "";
         //Builds the string taking in time data and other information
         //...
         //This is where I want to see which thread called this log function
         //...

         System.out.println( lineToPrint );
     }
 }

3 个答案:

答案 0 :(得分:8)

将此添加到记录器:

Thread t = Thread.currentThread();
String name = t.getName();

并将其转储到日志文件中。

答案 1 :(得分:0)

public class Temp{
   static Thread t = null;
}

temp.t = Thread.currentThread();

 public static void log ( String tag , Object message ) 
 {
         temp.t.getName();//get it
 }

答案 2 :(得分:0)

另外,关于pthread s,了解调用线程的函数是:pthread_t pthread_self (void);

参考:http://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_self.html