Java 如何更改外部jar中类的调试级别

Java 如何更改外部jar中类的调试级别,java,logging,log4j,Java,Logging,Log4j,我需要更改外部jar文件中的类的日志记录级别。在jar中的那个类中,代码如下所示。实际上,我需要做的只是更改日志记录级别 if(logger.isDebugEnabled()) { ... } 所以我想将日志记录级别更改为debug,如何对jar文件类执行此操作?使用下面的方法检查应用程序是否包含debug true/false private static final X500Principal DEBUG_DN = new X500Principal("CN=Android

我需要更改外部jar文件中的类的日志记录级别。在jar中的那个类中,代码如下所示。实际上,我需要做的只是更改日志记录级别

 if(logger.isDebugEnabled()) {
 ...
 }

所以我想将日志记录级别更改为debug,如何对jar文件类执行此操作?

使用下面的方法检查应用程序是否包含debug true/false

    private static final X500Principal DEBUG_DN = new X500Principal("CN=Android Debug,O=Android,C=US");
    private boolean isDebuggable(Context ctx)
    {
        boolean debuggable = false;
        try
        {
            PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),PackageManager.GET_SIGNATURES);
            Signature signatures[] = pinfo.signatures;

            CertificateFactory cf = CertificateFactory.getInstance("X.509");

            for ( int i = 0; i < signatures.length;i++)
            {
                ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray());
                X509Certificate cert = (X509Certificate) cf.generateCertificate(stream);
                debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN);
                if (debuggable)
                    break;
            }
        }
        catch (NameNotFoundException e)
        {
            //debuggable variable will remain false
        }
        catch (CertificateException e)
        {
            //debuggable variable will remain false
        }
        return debuggable;
    }
private static final X500Principal DEBUG_DN=new X500Principal(“CN=Android DEBUG,O=Android,C=US”);
专用布尔值isDebuggable(上下文ctx)
{
布尔可调试=假;
尝试
{
PackageInfo pinfo=ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),PackageManager.GET_签名);
签名[]=pinfo.signatures;
CertificateFactory cf=CertificateFactory.getInstance(“X.509”);
对于(int i=0;i
使用下面的方法检查应用程序是否包含debug true/false

    private static final X500Principal DEBUG_DN = new X500Principal("CN=Android Debug,O=Android,C=US");
    private boolean isDebuggable(Context ctx)
    {
        boolean debuggable = false;
        try
        {
            PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),PackageManager.GET_SIGNATURES);
            Signature signatures[] = pinfo.signatures;

            CertificateFactory cf = CertificateFactory.getInstance("X.509");

            for ( int i = 0; i < signatures.length;i++)
            {
                ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray());
                X509Certificate cert = (X509Certificate) cf.generateCertificate(stream);
                debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN);
                if (debuggable)
                    break;
            }
        }
        catch (NameNotFoundException e)
        {
            //debuggable variable will remain false
        }
        catch (CertificateException e)
        {
            //debuggable variable will remain false
        }
        return debuggable;
    }
private static final X500Principal DEBUG_DN=new X500Principal(“CN=Android DEBUG,O=Android,C=US”);
专用布尔值isDebuggable(上下文ctx)
{
布尔可调试=假;
尝试
{
PackageInfo pinfo=ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),PackageManager.GET_签名);
签名[]=pinfo.signatures;
CertificateFactory cf=CertificateFactory.getInstance(“X.509”);
对于(int i=0;i