diff --git a/plugins/firebase_lumberdash/lib/src/firebase_lumberdash.dart b/plugins/firebase_lumberdash/lib/src/firebase_lumberdash.dart index e4e7547..6f55882 100644 --- a/plugins/firebase_lumberdash/lib/src/firebase_lumberdash.dart +++ b/plugins/firebase_lumberdash/lib/src/firebase_lumberdash.dart @@ -7,24 +7,27 @@ class FirebaseLumberdash extends LumberdashClient { final FirebaseAnalytics firebaseAnalyticsClient; final String releaseVersion; final String environment; + final String loggerName; /// Instantiates a [LumberdashClient] with a [FirebaseAnalytics] - /// client, [releaseVersion] and [environment], all parameters + ///[loggerName], [releaseVersion] and [environment], all parameters /// used by the [FirebaseAnalytics] client when sending a log. - FirebaseLumberdash({ - @required this.firebaseAnalyticsClient, - @required this.releaseVersion, - @required this.environment, - }) : assert(firebaseAnalyticsClient != null), + FirebaseLumberdash( + {@required this.firebaseAnalyticsClient, + @required this.releaseVersion, + @required this.environment, + @required this.loggerName}) + : assert(firebaseAnalyticsClient != null), assert(releaseVersion != null), - assert(environment != null); + assert(environment != null), + assert(loggerName != null); /// Sends a log to Firebase Analytics using the given [FirebaseAnalytics] client @override void logMessage(String message, [Map extras]) { firebaseAnalyticsClient.logEvent( - name: message, - parameters: _buildParameters('MESSAGE', extras), + name: this.loggerName, + parameters: _buildParameters('MESSAGE', message, extras), ); } @@ -33,8 +36,8 @@ class FirebaseLumberdash extends LumberdashClient { @override void logWarning(String message, [Map extras]) { firebaseAnalyticsClient.logEvent( - name: message, - parameters: _buildParameters('WARNING', extras), + name: this.loggerName, + parameters: _buildParameters('WARNING', message, extras), ); } @@ -43,8 +46,8 @@ class FirebaseLumberdash extends LumberdashClient { @override void logFatal(String message, [Map extras]) { firebaseAnalyticsClient.logEvent( - name: message, - parameters: _buildParameters('FATAL', extras), + name: this.loggerName, + parameters: _buildParameters('FATAL', message, extras), ); } @@ -52,20 +55,24 @@ class FirebaseLumberdash extends LumberdashClient { /// [error] @override void logError(dynamic exception, [dynamic stacktrace]) { + String message = exception?.toString() ?? 'firebase_lumberdash_error'; firebaseAnalyticsClient.logEvent( - name: exception?.toString() ?? 'firebase_lumberdash_error', - parameters: _buildParameters('ERROR', {'stacktrace': stacktrace}), + name: this.loggerName, + parameters: + _buildParameters('ERROR', message, {'stacktrace': stacktrace}), ); } Map _buildParameters( String logLevel, + String message, Map extras, ) { Map parameters = { 'environment': environment, 'release': releaseVersion, 'level': logLevel, + 'message': message }; if (extras != null) { parameters.addAll(extras); diff --git a/plugins/firebase_lumberdash/test/firebase_lumberdash_test.dart b/plugins/firebase_lumberdash/test/firebase_lumberdash_test.dart index 295e69b..5ddee69 100644 --- a/plugins/firebase_lumberdash/test/firebase_lumberdash_test.dart +++ b/plugins/firebase_lumberdash/test/firebase_lumberdash_test.dart @@ -11,10 +11,12 @@ main() { FirebaseLumberdash firebaseLumberdash; String releaseVersion = '1.0.0'; String environment = 'development'; + String loggerName = 'FirebaseLumberdashLogger'; Map extras = { 'foo': 'bar', 'test': 'passed', }; + String message = 'test-message'; setUp(() { firebaseAnalytics = MockFirebaseAnalytics(); @@ -22,6 +24,7 @@ main() { firebaseAnalyticsClient: firebaseAnalytics, releaseVersion: releaseVersion, environment: environment, + loggerName: loggerName, ); }); @@ -32,6 +35,7 @@ main() { firebaseAnalyticsClient: null, releaseVersion: releaseVersion, environment: environment, + loggerName: loggerName, ); } catch (error) { expect(error, isAssertionError); @@ -44,6 +48,7 @@ main() { firebaseAnalyticsClient: firebaseAnalytics, releaseVersion: null, environment: environment, + loggerName: loggerName, ); } catch (error) { expect(error, isAssertionError); @@ -56,6 +61,20 @@ main() { firebaseAnalyticsClient: firebaseAnalytics, releaseVersion: releaseVersion, environment: null, + loggerName: loggerName, + ); + } catch (error) { + expect(error, isAssertionError); + } + }); + + test('throws AssertionError when loggerName is null', () { + try { + FirebaseLumberdash( + firebaseAnalyticsClient: firebaseAnalytics, + releaseVersion: releaseVersion, + environment: environment, + loggerName: null, ); } catch (error) { expect(error, isAssertionError); @@ -64,14 +83,15 @@ main() { }); test('logMessage w/extras', () { - firebaseLumberdash.logMessage('myMessage', extras); + firebaseLumberdash.logMessage(message, extras); verify( firebaseAnalytics.logEvent( - name: 'myMessage', + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, 'level': 'MESSAGE', + 'message': message, 'foo': 'bar', 'test': 'passed', }, @@ -80,12 +100,13 @@ main() { }); test('logMessage w/out extras', () { - firebaseLumberdash.logMessage('myMessage', null); + firebaseLumberdash.logMessage(message, null); verify( firebaseAnalytics.logEvent( - name: 'myMessage', + name: loggerName, parameters: { 'environment': environment, + 'message': message, 'release': releaseVersion, 'level': 'MESSAGE', }, @@ -99,11 +120,12 @@ main() { firebaseLumberdash.logError(exception, stacktrace); verify( firebaseAnalytics.logEvent( - name: exception, + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, 'level': 'ERROR', + 'message': exception, 'stacktrace': stacktrace, }, ), @@ -115,10 +137,11 @@ main() { firebaseLumberdash.logError(exception, null); verify( firebaseAnalytics.logEvent( - name: exception, + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, + 'message': exception, 'level': 'ERROR', 'stacktrace': null, }, @@ -130,10 +153,11 @@ main() { firebaseLumberdash.logFatal('myFatal', extras); verify( firebaseAnalytics.logEvent( - name: 'myFatal', + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, + 'message': 'myFatal', 'level': 'FATAL', 'foo': 'bar', 'test': 'passed', @@ -146,10 +170,11 @@ main() { firebaseLumberdash.logFatal('myFatal', null); verify( firebaseAnalytics.logEvent( - name: 'myFatal', + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, + 'message': 'myFatal', 'level': 'FATAL', }, ), @@ -160,11 +185,12 @@ main() { firebaseLumberdash.logWarning('myWarning', extras); verify( firebaseAnalytics.logEvent( - name: 'myWarning', + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, 'level': 'WARNING', + 'message': 'myWarning', 'foo': 'bar', 'test': 'passed', }, @@ -176,10 +202,11 @@ main() { firebaseLumberdash.logWarning('myWarning', null); verify( firebaseAnalytics.logEvent( - name: 'myWarning', + name: loggerName, parameters: { 'environment': environment, 'release': releaseVersion, + 'message': 'myWarning', 'level': 'WARNING', }, ),