Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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
Java 如何设置;URL";对于从后台任务报告给New Relic的错误_Java_Error Reporting_Newrelic - Fatal编程技术网

Java 如何设置;URL";对于从后台任务报告给New Relic的错误

Java 如何设置;URL";对于从后台任务报告给New Relic的错误,java,error-reporting,newrelic,Java,Error Reporting,Newrelic,NewRelic中的事件:错误选项卡显示应用程序使用NewRelic.noticeError(异常)报告的异常(日期、时间、消息和堆栈跟踪)。对于那些从web事务中报告的事务,它显示了完美的事务URL。但是对于使用@Trace注释报告的后台任务,它会显示线程的名称。这是没有意义的,因为线程的名称类似于pool-23-thread-9927 我是否可以为每个后台任务分配一个显示名称,或者在报告错误时传递一个名称,以便它显示在URL列中,而不是线程的名称中 注意:如果可以避免的话,我宁愿不更改线程的

NewRelic中的事件:错误选项卡显示应用程序使用
NewRelic.noticeError(异常)
报告的异常(日期、时间、消息和堆栈跟踪)。对于那些从web事务中报告的事务,它显示了完美的事务URL。但是对于使用
@Trace
注释报告的后台任务,它会显示线程的名称。这是没有意义的,因为线程的名称类似于
pool-23-thread-9927

我是否可以为每个后台任务分配一个显示名称,或者在报告错误时传递一个名称,以便它显示在URL列中,而不是线程的名称中

注意:如果可以避免的话,我宁愿不更改线程的名称

更新

下面是代码概述。事务包含在捕获并报告异常的
PingJob

public class PingJob implements Callable<PingStatus>
{
    @Trace(metricName = "ping", dispatcher = true)
    @Override
    public PingStatus call() {
        try {
            // calls that may throw exceptions
        }
        catch (RuntimeException e) {
            // pass to utility method to log and/or report to New Relic
            ExceptionLogger.log(e, LOG);
        }
    }
}
公共类PingJob实现可调用
{
@跟踪(metricName=“ping”,dispatcher=true)
@凌驾
公共状态调用(){
试一试{
//可能引发异常的调用
}
捕获(运行时异常e){
//传递到实用程序方法以记录和/或向New Relic报告
例外日志(e,log);
}
}
}

我在NewRelic站点上看到了由
ExceptionLogger
报告的异常,但是URL列列出了线程的名称而不是事务,在这种情况下,
ping
取决于您在
@Trace
注释中设置的参数,对于后台任务中的错误,您将看到在NewRelic UI中记录的错误URL的不同值

指定
metricName
并将
dispatcher
设置为
true
,如中所示

@Trace(metricName = "YourErrorNameHere", dispatcher = true)
@Trace(dispatcher = true)
将在此处将显示的URL设置为YourErrorName

指定no
metricName
,但仍将
dispatcher
设置为
true
,如中所示

@Trace(metricName = "YourErrorNameHere", dispatcher = true)
@Trace(dispatcher = true)
将显示的URL设置为您的类名/方法名,例如com.example.task.BackgroundTask/run

如果您只是单独使用
@Trace
,而没有将
dispatcher
设置为
true
,则将显示线程名称


我们将在将来更新我们的文档,以使其更清晰。

现在正在运行。在实际引发异常的后台任务中,我错误地将
@Trace
注释放在调用链的更下游的一个方法上,从而在事务之外调用了
noticeError