2016-12-27 50 views
0

我需要更改外部jar文件中的類的日誌記錄級別。在jar中的這個類中,代碼如下所示。我需要做的只是實際改變日誌記錄級別。如何更改外部jar中的類的調試級別

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

所以,我想改變日誌級別調試,我怎麼能這樣做的類是一個jar文件?

回答

1

使用下面的方法來檢查應用程序是否包含調試真/假

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; 
    }