Skip to content

Commit a0a9ca9

Browse files
chore: clean up logger implementation
- Remove unnecessary comments and TODOs - Replace direct print statements with AppLogger methods - Refactor AppLogger to enhance flexibility and ease of use
1 parent 9b26c39 commit a0a9ca9

File tree

4 files changed

+40
-18
lines changed

4 files changed

+40
-18
lines changed

example/lib/main.dart

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@ import 'dart:math';
44
import 'package:optimizely_flutter_sdk/optimizely_flutter_sdk.dart';
55
import 'package:optimizely_flutter_sdk_example/custom_logger.dart';
66

7-
/**
8-
* Logger TODO:
9-
* Check thread safety
10-
* Android logger fix
11-
* Add unit test
12-
*/
13-
147
void main() {
158
runApp(const MyApp());
169
}
@@ -45,7 +38,7 @@ class _MyAppState extends State<MyApp> {
4538
defaultLogLevel: OptimizelyLogLevel.debug,
4639
defaultDecideOptions: defaultOptions,
4740
logger: customLogger,
48-
);
41+
);
4942
var response = await flutterSDK.initializeClient();
5043

5144
setState(() {

lib/optimizely_flutter_sdk.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class OptimizelyFlutterSdk {
100100
if (logger != null) {
101101
setLogger(logger);
102102
} else {
103-
print("Logger not provided.");
103+
AppLogger.warning("Logger not provided.");
104104
}
105105
}
106106

lib/src/logger/flutter_logger.dart

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,35 @@ abstract class OptimizelyLogger {
88
class DefaultOptimizelyLogger implements OptimizelyLogger {
99
@override
1010
void log(OptimizelyLogLevel level, String message) {
11-
print('[Optimizely ${level.name}] $message');
11+
print('${level.name} $message');
12+
}
13+
}
14+
15+
class AppLogger {
16+
static OptimizelyLogger _instance = DefaultOptimizelyLogger();
17+
18+
/// Get the current app logger instance
19+
static OptimizelyLogger get instance => _instance;
20+
21+
/// Reset to default logger
22+
static void reset() {
23+
_instance = DefaultOptimizelyLogger();
24+
}
25+
26+
/// Convenience methods for direct logging
27+
static void error(String message) {
28+
_instance.log(OptimizelyLogLevel.error, message);
29+
}
30+
31+
static void warning(String message) {
32+
_instance.log(OptimizelyLogLevel.warning, message);
33+
}
34+
35+
static void info(String message) {
36+
_instance.log(OptimizelyLogLevel.info, message);
37+
}
38+
39+
static void debug(String message) {
40+
_instance.log(OptimizelyLogLevel.debug, message);
1241
}
1342
}

lib/src/logger/logger_bridge.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ class LoggerBridge {
1111

1212
/// Initialize the logger bridge to receive calls from native
1313
static void initialize(OptimizelyLogger? logger) {
14-
print('[LoggerBridge] Initializing with logger: ${logger != null}');
14+
AppLogger.info('[LoggerBridge] Initializing with logger: ${logger != null}');
1515
_customLogger = logger;
1616
_loggerChannel.setMethodCallHandler(_handleMethodCall);
1717
}
1818

1919
/// Handle incoming method calls from native Swift/Java code
2020
static Future<void> _handleMethodCall(MethodCall call) async {
21-
print('[LoggerBridge] Received method call: ${call.method}');
21+
AppLogger.info('[LoggerBridge] Received method call: ${call.method}');
2222
try {
2323
switch (call.method) {
2424
case 'log':
2525
await _handleLogCall(call);
2626
break;
2727
default:
28-
print('[LoggerBridge] Unknown method call: ${call.method}');
28+
AppLogger.warning('[LoggerBridge] Unknown method call: ${call.method}');
2929
}
3030
} catch (e) {
31-
print('[LoggerBridge] Error handling method call: $e');
31+
AppLogger.error('[LoggerBridge] Error handling method call: $e');
3232
}
3333
}
3434

@@ -41,21 +41,21 @@ class LoggerBridge {
4141
final message = args['message'] as String?;
4242

4343
if (levelRawValue == null || message == null) {
44-
print('[LoggerBridge] Warning: Missing level or message in log call');
44+
AppLogger.error('[LoggerBridge] Warning: Missing level or message in log call');
4545
return;
4646
}
4747

4848
final level = _convertLogLevel(levelRawValue);
4949

50-
print('[LoggerBridge] Processing log: level=$levelRawValue, message=$message');
50+
AppLogger.info('[LoggerBridge] Processing log: level=$levelRawValue, message=$message');
5151

5252
if (_customLogger != null) {
5353
_customLogger!.log(level, message);
5454
} else {
55-
print('[Optimizely ${level.name}] $message');
55+
AppLogger.info('[Optimizely ${level.name}] $message');
5656
}
5757
} catch (e) {
58-
print('[LoggerBridge] Error processing log call: $e');
58+
AppLogger.error('[LoggerBridge] Error processing log call: $e');
5959
}
6060
}
6161

0 commit comments

Comments
 (0)