mirror of
https://github.com/DKJone/DKWechatHelper.git
synced 2026-07-29 06:12:07 +08:00
[v1.0.7](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.7) / 2021-01-29
what's new * 动态启动图 * 动态聊天背景 * 支持8.0.1 * 更新越狱包8.0.1 * 更新已注入助手的8.0.1未签名包 * 更新越狱源安装包
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
// QGVAPLogger.h
|
||||
// Tencent is pleased to support the open source community by making vap available.
|
||||
//
|
||||
// Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
|
||||
//
|
||||
// Licensed under the MIT License (the "License"); you may not use this file except in
|
||||
// compliance with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://opensource.org/licenses/MIT
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under the License is
|
||||
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
// either express or implied. See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#define kQGVAPModuleCommon @"kQGVAPModuleCommon"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#define VAP_Logger(level, module, format, ...) if(external_VAP_Logger)external_VAP_Logger(level, __FILE__, __LINE__, __FUNCTION__, module, format, ##__VA_ARGS__); else internal_VAP_Logger_handler(level, __FILE__, __LINE__, __FUNCTION__, module, format, ##__VA_ARGS__);
|
||||
|
||||
#define VAP_Error(module, format, ...) VAP_Logger(VAPLogLevelError, module, format, ##__VA_ARGS__)
|
||||
#define VAP_Event(module, format, ...) VAP_Logger(VAPLogLevelEvent, module, format, ##__VA_ARGS__)
|
||||
#define VAP_Warn(module, format, ...) VAP_Logger(VAPLogLevelWarn, module, format, ##__VA_ARGS__)
|
||||
#define VAP_Info(module, format, ...) VAP_Logger(VAPLogLevelInfo, module, format, ##__VA_ARGS__)
|
||||
#define VAP_Debug(module, format, ...) VAP_Logger(VAPLogLevelDebug, module, format, ##__VA_ARGS__)
|
||||
|
||||
typedef enum {
|
||||
VAPLogLevelAll = 0,
|
||||
VAPLogLevelDebug, // Detailed information on the flow through the system.
|
||||
VAPLogLevelInfo, // Interesting runtime events (startup/shutdown), should be conservative and keep to a minimum.
|
||||
VAPLogLevelEvent,
|
||||
VAPLogLevelWarn, // Other runtime situations that are undesirable or unexpected, but not necessarily "wrong".
|
||||
VAPLogLevelError, // Other runtime errors or unexpected conditions.
|
||||
VAPLogLevelFatal, // Severe errors that cause premature termination.
|
||||
VAPLogLevelNone, // Special level used to disable all log messages.
|
||||
} VAPLogLevel;
|
||||
|
||||
typedef VAPLogLevel HWDLogLevel;
|
||||
|
||||
//void qg_VAP_Logger(VAPLogLevel level, const char* file, int line, const char* func, NSString *MODULE, NSString *format, ...);
|
||||
typedef void (*QGVAPLoggerFunc)(VAPLogLevel, const char*, int, const char*, NSString *, NSString *, ...);
|
||||
|
||||
#if defined __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern QGVAPLoggerFunc external_VAP_Logger;
|
||||
void internal_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const char* func, NSString *module, NSString *format, ...);
|
||||
|
||||
#if defined __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
@interface QGVAPLogger : NSObject
|
||||
|
||||
+ (void)registerExternalLog:(QGVAPLoggerFunc)externalLog;
|
||||
|
||||
+ (void)log:(VAPLogLevel)level file:(NSString *)file line:(NSInteger)line func:(NSString *)func module:(NSString *)module message:(NSString *)message;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,53 @@
|
||||
// QGVAPLogger.m
|
||||
// Tencent is pleased to support the open source community by making vap available.
|
||||
//
|
||||
// Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
|
||||
//
|
||||
// Licensed under the MIT License (the "License"); you may not use this file except in
|
||||
// compliance with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://opensource.org/licenses/MIT
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under the License is
|
||||
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
// either express or implied. See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#import "QGVAPLogger.h"
|
||||
|
||||
QGVAPLoggerFunc external_VAP_Logger;
|
||||
|
||||
@implementation QGVAPLogger
|
||||
|
||||
#pragma mark - Extenral log
|
||||
|
||||
void internal_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const char* func, NSString *module, NSString *format, ...) {
|
||||
|
||||
#ifdef DEBUG
|
||||
va_list arg_list;
|
||||
va_start (arg_list, format);
|
||||
NSString *formattedString = [[NSString alloc] initWithFormat:format arguments:arg_list];
|
||||
va_end(arg_list);
|
||||
file = [NSString stringWithUTF8String:file].lastPathComponent.UTF8String;
|
||||
NSLog(@"<%@> %s(%@):%s [%@] - %@",@(level), file, @(line), func, module, formattedString);
|
||||
#endif
|
||||
}
|
||||
|
||||
+ (void)registerExternalLog:(QGVAPLoggerFunc)externalLog {
|
||||
external_VAP_Logger = externalLog;
|
||||
}
|
||||
|
||||
+ (void)log:(VAPLogLevel)level file:(NSString *)file line:(NSInteger)line func:(NSString *)func module:(NSString *)module message:(NSString *)message {
|
||||
|
||||
if ([message containsString:@"%"]) {
|
||||
//此处是为了兼容%进入formmat之后的crash风险
|
||||
[message stringByReplacingOccurrencesOfString:@"%" withString:@""];
|
||||
}
|
||||
if (external_VAP_Logger) {
|
||||
external_VAP_Logger(level, file.UTF8String, (int)line, func.UTF8String, module, message);
|
||||
} else {
|
||||
internal_VAP_Logger_handler(level, file.UTF8String, (int)line, func.UTF8String, module, message);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user