All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taobao.arthas.core.GlobalOptions Maven / Gradle / Ivy

The newest version!
package com.taobao.arthas.core;

import com.taobao.arthas.common.JavaVersionUtils;

/**
 * 全局开关
 * Created by vlinux on 15/6/4.
 */
public class GlobalOptions {
    public static final String STRICT_MESSAGE = "By default, strict mode is true, "
            + "not allowed to set object properties. "
            + "Want to set object properties, execute `options strict false`";

    /**
     * 是否支持系统类
* 这个开关打开之后将能代理到来自JVM的部分类,由于有非常强的安全风险可能会引起系统崩溃
* 所以这个开关默认是关闭的,除非你非常了解你要做什么,否则请不要打开 */ @Option(level = 0, name = "unsafe", summary = "Option to support system-level class", description = "This option enables to proxy functionality of JVM classes." + " Due to serious security risk a JVM crash is possibly be introduced." + " Do not activate it unless you are able to manage." ) public static volatile boolean isUnsafe = false; /** * 是否支持dump被增强的类
* 这个开关打开这后,每次增强类的时候都将会将增强的类dump到文件中,以便于进行反编译分析 */ @Option(level = 1, name = "dump", summary = "Option to dump the enhanced classes", description = "This option enables the enhanced classes to be dumped to external file " + "for further de-compilation and analysis." ) public static volatile boolean isDump = false; /** * 是否支持批量增强
* 这个开关打开后,每次均是批量增强类 */ @Option(level = 1, name = "batch-re-transform", summary = "Option to support batch reTransform Class", description = "This options enables to reTransform classes with batch mode." ) public static volatile boolean isBatchReTransform = true; /** * 是否支持json格式化输出
* 这个开关打开后,使用json格式输出目标对象,配合-x参数使用 */ @Option(level = 2, name = "json-format", summary = "Option to support JSON format of object output", description = "This option enables to format object output with JSON when -x option selected." ) public static volatile boolean isUsingJson = false; /** * 是否关闭子类 */ @Option( level = 1, name = "disable-sub-class", summary = "Option to control include sub class when class matching", description = "This option disable to include sub class when matching class." ) public static volatile boolean isDisableSubClass = false; /** * 是否在interface类里搜索函数 * https://github.com/alibaba/arthas/issues/1105 */ @Option( level = 1, name = "support-default-method", summary = "Option to control include default method in interface when class matching", description = "This option disable to include default method in interface when matching class." ) public static volatile boolean isSupportDefaultMethod = JavaVersionUtils.isGreaterThanJava7(); /** * 是否日志中保存命令执行结果 */ @Option(level = 1, name = "save-result", summary = "Option to print command's result to log file", description = "This option enables to save each command's result to log file, " + "which path is ${user.home}/logs/arthas-cache/result.log." ) public static volatile boolean isSaveResult = false; /** * job的超时时间 */ @Option(level = 2, name = "job-timeout", summary = "Option to job timeout", description = "This option setting job timeout,The unit can be d, h, m, s for day, hour, minute, second. " + "1d is one day in default" ) public static volatile String jobTimeout = "1d"; /** * 是否打印parent类里的field * @see com.taobao.arthas.core.view.ObjectView */ @Option(level = 1, name = "print-parent-fields", summary = "Option to print all fileds in parent class", description = "This option enables print files in parent class, default value true." ) public static volatile boolean printParentFields = true; /** * 是否打开verbose 开关 */ @Option(level = 1, name = "verbose", summary = "Option to print verbose information", description = "This option enables print verbose information, default value false." ) public static volatile boolean verbose = false; /** * 是否打开strict 开关 */ @Option(level = 1, name = "strict", summary = "Option to strict mode", description = STRICT_MESSAGE ) public static volatile boolean strict = true; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy