diff --git a/APIJSONORM/src/main/java/apijson/Log.java b/APIJSONORM/src/main/java/apijson/Log.java index d37691f8e..eecc7e1c2 100755 --- a/APIJSONORM/src/main/java/apijson/Log.java +++ b/APIJSONORM/src/main/java/apijson/Log.java @@ -22,6 +22,25 @@ public static void d(String TAG, String msg) { } } + /** + * Forced debug + * @param TAG tag + * @param msg debug messages + */ + public static void fd(String TAG, String msg) { + System.err.println(TAG + ".DEBUG: " + msg); + } + + /** + * Generate separation line + * @param pre prefix + * @param symbol used for generating separation line + * @param post postfix + */ + public static void sl(String pre,char symbol ,String post) { + System.err.println(pre+new String(new char[48]).replace('\u0000', symbol)+post); + } + /** * @param TAG * @param msg diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java index e109b5a04..c46e82e4e 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java @@ -48,12 +48,25 @@ public abstract class AbstractParser implements Parser, ParserCreator, VerifierCreator, SQLCreator { protected static final String TAG = "AbstractParser"; + /** + * 可以通过切换该变量来控制是否打印关键的接口请求内容。保守起见,该值默认为false。 + * 与 {@link Log#DEBUG} 任何一个为 true 都会打印关键的接口请求内容。 + */ + public static boolean IS_PRINT_REQUEST_STRING_LOG = false; + /** * 打印大数据量日志的标识。线上环境比较敏感,可以通过切换该变量来控制异常栈抛出、错误日志打印。保守起见,该值默认为false。 * 与 {@link Log#DEBUG} 任何一个为 true 都会打印关键的接口请求及响应信息。 */ public static boolean IS_PRINT_BIG_LOG = false; + /** + * 可以通过切换该变量来控制是否打印关键的接口请求结束时间。保守起见,该值默认为false。 + * 与 {@link Log#DEBUG} 任何一个为 true 都会打印关键的接口请求结束时间。 + */ + public static boolean IS_PRINT_REQUEST_ENDTIME_LOG = false; + + /** * method = null */ @@ -400,16 +413,18 @@ public JSONObject parseResponse(JSONObject request) { onClose(); - System.err.println("\n\n\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n " - + TAG + ".DEBUG: " + requestMethod + "/parseResponse request = \n" + requestString + "\n\n"); - - if (Log.DEBUG || IS_PRINT_BIG_LOG || error != null) { // 日志仅存服务器,所以不太敏感,而且这些日志虽然量大但非常重要,对排查 bug 很关键 - System.err.println(TAG + ".DEBUG: " + requestMethod + "/parseResponse return response = \n" + JSON.toJSONString(requestObject) + "\n\n"); + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/232 + if (IS_PRINT_REQUEST_STRING_LOG||Log.DEBUG||error != null) { + Log.sl("\n\n\n",'<',""); + Log.fd(TAG , requestMethod + "/parseResponse request = \n" + requestString + "\n\n"); + } + if (IS_PRINT_BIG_LOG||Log.DEBUG||error != null) { // 日志仅存服务器,所以不太敏感,而且这些日志虽然量大但非常重要,对排查 bug 很关键 + Log.fd(TAG,requestMethod + "/parseResponse return response = \n" + JSON.toJSONString(requestObject) + "\n\n"); + } + if (IS_PRINT_REQUEST_ENDTIME_LOG||Log.DEBUG||error != null) { + Log.fd(TAG , requestMethod + "/parseResponse endTime = " + endTime + "; duration = " + duration); + Log.sl("",'>',"\n\n\n"); } - - System.err.println(TAG + ".DEBUG: " + requestMethod + "/parseResponse endTime = " + endTime + "; duration = " + duration - + "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n\n\n"); - return res; }