

# 应用程序分析

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


## 使用Apache Flink进行自定义日志记录概述

每个独立的JobManager，TaskManager，HistoryServer和zookeeper守护重定向`stdout`和`stderr`与一个文件`.out`名的后缀，并写入内部记录到一个文件`.log`后缀。用户在`env.java.opts`，中配置的Java选项`env.java.opts.jobmanager`，`env.java.opts.taskmanager`同样可以使用脚本变量定义日志文件，`FLINK_LOG_PREFIX`并将选项括在双引号中以便进行后期评估。使用的日志文件`FLINK_LOG_PREFIX`与默认文件`.out`和`.log`文件一起旋转。

# 使用Java Flight Recorder进行性能分析

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


Java Flight Recorder是Oracle JDK中内置的分析和事件收集框架。 [Java Mission Control](http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html) 是一套先进的工具，可以对Java Flight Recorder收集的大量数据进行高效，详细的分析。配置示例：



```
env.java.opts: "-XX:+UnlockCommercialFeatures  -XX:+UnlockDiagnosticVMOptions  -XX:+FlightRecorder  -XX:+DebugNonSafepoints  -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=${FLINK_LOG_PREFIX}.jfr"
```



# 使用JITWatch进行分析

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


[JITWatch](https://github.com/AdoptOpenJDK/jitwatch/wiki)是Java HotSpot JIT编译器的日志分析器和可视化工具，用于检查内联决策，热方法，字节码和汇编。配置示例：



```
env.java.opts: "-XX:+UnlockDiagnosticVMOptions  -XX:+TraceClassLoading  -XX:+LogCompilation  -XX:LogFile=${FLINK_LOG_PREFIX}.jit  -XX:+PrintAssembly"
```



