From 7153babcb309d303960faa5cb32a6e4557d9c34b Mon Sep 17 00:00:00 2001 From: wwwcg Date: Thu, 29 Dec 2022 11:09:30 +0800 Subject: [PATCH] fix(ios): fix ConsoleModule.log not working (#2812) Co-authored-by: Zoom Chan --- .../base/src/platform/ios/logging.cc | 15 ++++++---- examples/hippy-react-demo/src/app.jsx | 5 ++++ examples/ios-demo/HippyDemo/ViewController.m | 2 +- ios/sdk/utils/HippyLog.mm | 29 ++----------------- 4 files changed, 18 insertions(+), 33 deletions(-) diff --git a/core/third_party/base/src/platform/ios/logging.cc b/core/third_party/base/src/platform/ios/logging.cc index 8a2d0911a84..6ae7e6e546a 100644 --- a/core/third_party/base/src/platform/ios/logging.cc +++ b/core/third_party/base/src/platform/ios/logging.cc @@ -36,7 +36,9 @@ namespace { const char* const kLogSeverityNames[TDF_LOG_NUM_SEVERITIES] = {"INFO", "WARNING", "ERROR", "FATAL"}; const char* GetNameForLogSeverity(LogSeverity severity) { - if (severity >= LOG_INFO && severity < TDF_LOG_NUM_SEVERITIES) return kLogSeverityNames[severity]; + if (severity >= TDF_LOG_INFO && severity < TDF_LOG_NUM_SEVERITIES) { + return kLogSeverityNames[severity]; + } return "UNKNOWN"; } @@ -65,12 +67,13 @@ std::mutex LogMessage::mutex_; LogMessage::LogMessage(LogSeverity severity, const char* file, int line, const char* condition) : severity_(severity), file_(file), line_(line) { stream_ << "["; - if (severity >= LOG_INFO) + if (severity >= TDF_LOG_INFO) { stream_ << GetNameForLogSeverity(severity); - else - stream_ << "VERBOSE" << -severity; - stream_ << ":" << (severity > LOG_INFO ? StripDots(file_) : StripPath(file_)) << "(" << line_ - << ")] "; + } else { + stream_ << "VERBOSE" << -TDF_LOG_FATAL; + } + stream_ << ":" << (severity > TDF_LOG_FATAL ? StripDots(file_) : StripPath(file_)) + << "(" << line_ << ")] "; if (condition) stream_ << "Check failed: " << condition << ". "; } diff --git a/examples/hippy-react-demo/src/app.jsx b/examples/hippy-react-demo/src/app.jsx index 94e9d10b081..52b1b253ed4 100644 --- a/examples/hippy-react-demo/src/app.jsx +++ b/examples/hippy-react-demo/src/app.jsx @@ -3,6 +3,7 @@ import { StyleSheet, View, Text, + ConsoleModule, } from '@hippy/react'; import HomeEntry from './pages/entry'; import RemoteDebug from './pages/remote-debug'; @@ -42,6 +43,10 @@ export default class App extends Component { }); } + componentDidMount() { + ConsoleModule.log('~~~~~~~~~~~~~~~~~ This is a log from ConsoleModule ~~~~~~~~~~~~~~~~~'); + } + render() { const { pageIndex } = this.state; const { __instanceId__: instanceId } = this.props; diff --git a/examples/ios-demo/HippyDemo/ViewController.m b/examples/ios-demo/HippyDemo/ViewController.m index 57cb7425df2..ee3a98b0f8d 100644 --- a/examples/ios-demo/HippyDemo/ViewController.m +++ b/examples/ios-demo/HippyDemo/ViewController.m @@ -37,7 +37,7 @@ - (void)viewDidLoad { // Do any additional setup after loading the view. HippySetLogFunction(^(HippyLogLevel level, HippyLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - NSLog(@"hippy says:%@ in file %@ at line %@", message, fileName, lineNumber); + NSLog(@"hippy says:%@ in file [%@:%d]", message, fileName, lineNumber.intValue); }); diff --git a/ios/sdk/utils/HippyLog.mm b/ios/sdk/utils/HippyLog.mm index c6b7c125466..9e01cb4041c 100644 --- a/ios/sdk/utils/HippyLog.mm +++ b/ios/sdk/utils/HippyLog.mm @@ -51,7 +51,6 @@ static HippyLogFunction HippyCurrentLogFunction; static HippyLogLevel HippyCurrentLogThreshold = HippyDefaultLogThreshold; -static BOOL getFileNameAndLineNumberFromLogMessage(NSString *message, NSString **fileName, int *lineNumber); static void registerTDFLogHandler() { static std::once_flag flag; std::call_once(flag, [](){ @@ -60,11 +59,10 @@ static void registerTDFLogHandler() { std::string string = stream.str(); if (string.length()) { NSString *message = [NSString stringWithUTF8String:string.c_str()]; - NSString *fileName = nil; - int lineNumber = 0; - if (getFileNameAndLineNumberFromLogMessage(message, &fileName, &lineNumber)) { - _HippyLogNativeInternal(HippyLogLevelInfo, [fileName UTF8String], lineNumber, @"%@", message); + if (message == nil) { // fixme: deal with unicode characters + message = [NSString stringWithCString:string.c_str() encoding:NSASCIIStringEncoding]; } + _HippyLogNativeInternal(HippyLogLevelInfo, "TDFCore", 0, @"%@", message); } } }; @@ -72,27 +70,6 @@ static void registerTDFLogHandler() { }); } -static BOOL getFileNameAndLineNumberFromLogMessage(NSString *message, NSString **fileName, int *lineNumber) { - //[VERBOSE0:worker_task_runner.cc(84)] WorkerThread create - static NSString *prefixString = @"[VERBOSE0:"; - @try { - if ([message hasPrefix:prefixString] && fileName && lineNumber) { - NSUInteger messageLength = [message length]; - NSUInteger fileNameStartLocation = [prefixString length]; - NSUInteger firstParenthesisPosition = [message rangeOfString:@"(" options:(0) range:NSMakeRange(fileNameStartLocation, messageLength - fileNameStartLocation)].location; - NSUInteger secondParenthesisPosition = [message rangeOfString:@")" options:(0) range:NSMakeRange(fileNameStartLocation, messageLength - fileNameStartLocation)].location; - NSString *name = [message substringWithRange:NSMakeRange(fileNameStartLocation, firstParenthesisPosition - fileNameStartLocation)]; - NSString *line = [message substringWithRange:NSMakeRange(firstParenthesisPosition + 1, secondParenthesisPosition - firstParenthesisPosition - 1)]; - *fileName = [name copy]; - *lineNumber = [line intValue]; - return YES; - } - } @catch (NSException *exception) { - return NO; - } - return NO; -} - HippyLogLevel HippyGetLogThreshold() { return HippyCurrentLogThreshold; }