[APP-1782] Migrate to new analytics APIs (#9735)
* Migrate logEvent to useAnalytics * Migrate logger.metric to useAnalytics * Migrate tricky spot, fix types * Migrate remaining tricky spot * Missed one * Remove metric() from logger * Migrate useGate to useAnalytics * Remove all other StatSig mentions * Update event payload * Update logger tests * Mock expo method
This commit is contained in:
@@ -45,7 +45,7 @@ describe('general functionality', () => {
|
||||
|
||||
logger.addTransport(mockTransport)
|
||||
|
||||
const extra = {foo: true}
|
||||
const extra = {foo: true, metadata: {}}
|
||||
logger.warn('message', extra)
|
||||
|
||||
expect(mockTransport).toHaveBeenCalledWith(
|
||||
@@ -71,7 +71,7 @@ describe('general functionality', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
'a',
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -81,7 +81,7 @@ describe('general functionality', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
'b',
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -91,7 +91,7 @@ describe('general functionality', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
'c',
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -256,7 +256,7 @@ describe('general functionality', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
'warn',
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -276,7 +276,7 @@ describe('create', () => {
|
||||
LogLevel.Info,
|
||||
Logger.Context.Default,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -300,7 +300,7 @@ describe('debug contexts', () => {
|
||||
LogLevel.Debug,
|
||||
'specific',
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -323,7 +323,7 @@ describe('debug contexts', () => {
|
||||
LogLevel.Debug,
|
||||
'namespace:foo',
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -345,7 +345,7 @@ describe('debug contexts', () => {
|
||||
LogLevel.Debug,
|
||||
'namespace:bar:baz',
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -367,7 +367,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Debug,
|
||||
undefined,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -376,7 +376,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Info,
|
||||
undefined,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -385,7 +385,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
|
||||
@@ -395,7 +395,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Error,
|
||||
undefined,
|
||||
e,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -418,7 +418,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Info,
|
||||
undefined,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -444,7 +444,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Warn,
|
||||
undefined,
|
||||
message,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
@@ -474,7 +474,7 @@ describe('supports levels', () => {
|
||||
LogLevel.Error,
|
||||
undefined,
|
||||
e,
|
||||
{},
|
||||
{metadata: {}},
|
||||
timestamp,
|
||||
)
|
||||
})
|
||||
|
||||
+1
-17
@@ -10,7 +10,6 @@ import {
|
||||
type Transport,
|
||||
} from '#/logger/types'
|
||||
import {enabledLogLevels} from '#/logger/util'
|
||||
import {type Events as Metrics} from '#/analytics/metrics/types'
|
||||
import {ENV} from '#/env'
|
||||
|
||||
const TRANSPORTS: Transport[] = (function configureTransports() {
|
||||
@@ -97,21 +96,6 @@ export class Logger {
|
||||
this.transport({level: LogLevel.Error, message: error, metadata})
|
||||
}
|
||||
|
||||
metric<E extends keyof Metrics>(
|
||||
event: E & string,
|
||||
metadata: Metrics[E],
|
||||
_: {
|
||||
/**
|
||||
* Optionally also send to StatSig
|
||||
*/
|
||||
statsig?: boolean
|
||||
} = {statsig: true},
|
||||
) {
|
||||
for (const transport of this.transports) {
|
||||
transport(LogLevel.Info, LogContext.Metric, event, metadata, Date.now())
|
||||
}
|
||||
}
|
||||
|
||||
addTransport(transport: Transport) {
|
||||
this.transports.push(transport)
|
||||
return () => {
|
||||
@@ -139,7 +123,7 @@ export class Logger {
|
||||
const timestamp = Date.now()
|
||||
const meta: Metadata = {
|
||||
...metadata,
|
||||
inherited: this.inheritedMetadata,
|
||||
metadata: this.inheritedMetadata,
|
||||
}
|
||||
|
||||
// send every log to syslog
|
||||
|
||||
@@ -24,6 +24,14 @@ export function prepareMetadata(
|
||||
if (value instanceof Error) {
|
||||
value = value.toString()
|
||||
}
|
||||
if (
|
||||
typeof value === 'object' &&
|
||||
value !== null &&
|
||||
Object.keys(value).length === 0 &&
|
||||
value.constructor === Object
|
||||
) {
|
||||
return acc
|
||||
}
|
||||
return {...acc, [key]: value}
|
||||
}, {})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user