Search in sources :

Example 1 with Parser

use of com.logg.parser.Parser in project Logg by RockyQu.

the class Utils method objectToString.

/**
 * Object to String
 *
 * @param object
 * @param childLevel
 * @return
 */
private static String objectToString(Object object, int childLevel) {
    if (object == null) {
        return LoggConstant.NULL;
    }
    if (childLevel > LoggConstant.MAX_LEVEL) {
        return object.toString();
    }
    // 自定义解析类判断
    LoggConfiguration loggConfig = PrinterManager.getInstance().getConfiguration();
    if (loggConfig != null) {
        for (Parser parser : loggConfig.getParsers()) {
            if (parser.parseClassType().isAssignableFrom(object.getClass())) {
                return parser.parseString(object);
            }
        }
    }
    // 是否是数组
    if (Utils.isArray(object)) {
        return Utils.parseArray(object);
    }
    if (object.toString().startsWith(object.getClass().getName() + "@")) {
        StringBuilder builder = new StringBuilder();
        iterateClassFields(object.getClass(), builder, object, false, childLevel);
        Class superClass = object.getClass().getSuperclass();
        while (!superClass.equals(Object.class)) {
            iterateClassFields(superClass, builder, object, true, childLevel);
            superClass = superClass.getSuperclass();
        }
        return builder.toString();
    }
    return object.toString();
}
Also used : LoggConfiguration(com.logg.config.LoggConfiguration) Parser(com.logg.parser.Parser)

Aggregations

LoggConfiguration (com.logg.config.LoggConfiguration)1 Parser (com.logg.parser.Parser)1