@shellicar/winston-azure-application-insights 5.0.5 → 5.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +39 -20
- package/dist/index.d.ts +39 -20
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.d.mts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { Format } from 'logform';
|
|
2
2
|
import { TelemetryClient as TelemetryClient$1 } from 'applicationinsightsv2';
|
|
3
|
-
import { TraceTelemetry as TraceTelemetry$1 } from 'applicationinsightsv2/out/Declarations/Contracts';
|
|
3
|
+
import { TraceTelemetry as TraceTelemetry$1, ExceptionTelemetry as ExceptionTelemetry$1 } from 'applicationinsightsv2/out/Declarations/Contracts';
|
|
4
4
|
import { TraceTelemetry, TelemetryClient, ExceptionTelemetry } from 'applicationinsightsv3';
|
|
5
|
-
import TransportStream from 'winston-transport';
|
|
6
5
|
import * as winston from 'winston';
|
|
6
|
+
import TransportStream from 'winston-transport';
|
|
7
7
|
|
|
8
|
+
type PlainObject = Record<string, any>;
|
|
8
9
|
type JsonValue = string | number | JsonObject | JsonValue[] | null;
|
|
9
10
|
type JsonObject = {
|
|
10
11
|
[key: string]: JsonValue;
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
type LogLevels = {
|
|
14
|
+
[key: string]: LogLevel;
|
|
15
|
+
};
|
|
16
|
+
declare enum LogLevel {
|
|
17
|
+
Verbose = 0,
|
|
18
|
+
Information = 1,
|
|
19
|
+
Warning = 2,
|
|
20
|
+
Error = 3,
|
|
21
|
+
Critical = 4
|
|
22
|
+
}
|
|
14
23
|
type AzureInsightsClientOptions = {
|
|
15
24
|
version: 2;
|
|
16
25
|
client: TelemetryClient$1;
|
|
@@ -20,34 +29,28 @@ type AzureInsightsClientOptions = {
|
|
|
20
29
|
client: TelemetryClient;
|
|
21
30
|
filters?: ITelemetryFilterV3[];
|
|
22
31
|
};
|
|
32
|
+
type AzureApplicationInsightsLoggerOptionsBase = AzureInsightsClientOptions & {
|
|
33
|
+
silent?: boolean;
|
|
34
|
+
sendErrorsAsExceptions?: boolean;
|
|
35
|
+
};
|
|
36
|
+
type AzureApplicationInsightsLoggerOptions = AzureApplicationInsightsLoggerOptionsBase & {
|
|
37
|
+
defaultLevel: string;
|
|
38
|
+
levels?: LogLevels;
|
|
39
|
+
};
|
|
23
40
|
declare abstract class ITelemetryFilterV3 {
|
|
24
41
|
filterTrace(trace: TraceTelemetry, client: TelemetryClient): boolean;
|
|
25
42
|
filterException(trace: ExceptionTelemetry, client: TelemetryClient): boolean;
|
|
26
43
|
}
|
|
27
44
|
declare abstract class ITelemetryFilterV2 {
|
|
28
45
|
filterTrace(trace: TraceTelemetry$1, client: TelemetryClient$1): boolean;
|
|
29
|
-
filterException(trace: ExceptionTelemetry, client: TelemetryClient$1): boolean;
|
|
30
|
-
}
|
|
31
|
-
type AzureApplicationInsightsLoggerOptions = AzureInsightsClientOptions & {
|
|
32
|
-
level?: string;
|
|
33
|
-
silent?: boolean;
|
|
34
|
-
sendErrorsAsExceptions?: boolean;
|
|
35
|
-
};
|
|
36
|
-
declare class AzureApplicationInsightsLogger extends TransportStream {
|
|
37
|
-
private readonly options;
|
|
38
|
-
sendErrorsAsExceptions: boolean;
|
|
39
|
-
readonly name: string;
|
|
40
|
-
get client(): TelemetryClient | TelemetryClient$1;
|
|
41
|
-
constructor(options: AzureApplicationInsightsLoggerOptions);
|
|
42
|
-
private handleTrace;
|
|
43
|
-
private handleException;
|
|
44
|
-
log(info: PlainObject, callback: () => void): void;
|
|
46
|
+
filterException(trace: ExceptionTelemetry$1, client: TelemetryClient$1): boolean;
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
type CreateWinstonLoggerOptions = {
|
|
48
50
|
insights: AzureApplicationInsightsLoggerOptions;
|
|
49
51
|
winston: {
|
|
50
52
|
level?: string;
|
|
53
|
+
levels?: LogLevels;
|
|
51
54
|
defaultMeta?: JsonObject;
|
|
52
55
|
console: boolean;
|
|
53
56
|
format?: Format[];
|
|
@@ -60,4 +63,20 @@ declare const isRunningInAzure: () => boolean;
|
|
|
60
63
|
|
|
61
64
|
declare const isRunningLocally: () => boolean;
|
|
62
65
|
|
|
66
|
+
declare class AzureApplicationInsightsLogger extends TransportStream {
|
|
67
|
+
private readonly options;
|
|
68
|
+
sendErrorsAsExceptions: boolean;
|
|
69
|
+
readonly name: string;
|
|
70
|
+
get client(): TelemetryClient | TelemetryClient$1;
|
|
71
|
+
constructor(options: AzureApplicationInsightsLoggerOptions);
|
|
72
|
+
private handleTrace;
|
|
73
|
+
private handleException;
|
|
74
|
+
private trackTraceV2;
|
|
75
|
+
private trackTraceV3;
|
|
76
|
+
private trackExceptionV2;
|
|
77
|
+
private trackExceptionV3;
|
|
78
|
+
log(info: PlainObject, callback: () => void): void;
|
|
79
|
+
private getSeverity;
|
|
80
|
+
}
|
|
81
|
+
|
|
63
82
|
export { AzureApplicationInsightsLogger, type AzureApplicationInsightsLoggerOptions, type CreateWinstonLoggerOptions, ITelemetryFilterV2, ITelemetryFilterV3, createWinstonLogger, isRunningInAzure, isRunningLocally };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { Format } from 'logform';
|
|
2
2
|
import { TelemetryClient as TelemetryClient$1 } from 'applicationinsightsv2';
|
|
3
|
-
import { TraceTelemetry as TraceTelemetry$1 } from 'applicationinsightsv2/out/Declarations/Contracts';
|
|
3
|
+
import { TraceTelemetry as TraceTelemetry$1, ExceptionTelemetry as ExceptionTelemetry$1 } from 'applicationinsightsv2/out/Declarations/Contracts';
|
|
4
4
|
import { TraceTelemetry, TelemetryClient, ExceptionTelemetry } from 'applicationinsightsv3';
|
|
5
|
-
import TransportStream from 'winston-transport';
|
|
6
5
|
import * as winston from 'winston';
|
|
6
|
+
import TransportStream from 'winston-transport';
|
|
7
7
|
|
|
8
|
+
type PlainObject = Record<string, any>;
|
|
8
9
|
type JsonValue = string | number | JsonObject | JsonValue[] | null;
|
|
9
10
|
type JsonObject = {
|
|
10
11
|
[key: string]: JsonValue;
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
type LogLevels = {
|
|
14
|
+
[key: string]: LogLevel;
|
|
15
|
+
};
|
|
16
|
+
declare enum LogLevel {
|
|
17
|
+
Verbose = 0,
|
|
18
|
+
Information = 1,
|
|
19
|
+
Warning = 2,
|
|
20
|
+
Error = 3,
|
|
21
|
+
Critical = 4
|
|
22
|
+
}
|
|
14
23
|
type AzureInsightsClientOptions = {
|
|
15
24
|
version: 2;
|
|
16
25
|
client: TelemetryClient$1;
|
|
@@ -20,34 +29,28 @@ type AzureInsightsClientOptions = {
|
|
|
20
29
|
client: TelemetryClient;
|
|
21
30
|
filters?: ITelemetryFilterV3[];
|
|
22
31
|
};
|
|
32
|
+
type AzureApplicationInsightsLoggerOptionsBase = AzureInsightsClientOptions & {
|
|
33
|
+
silent?: boolean;
|
|
34
|
+
sendErrorsAsExceptions?: boolean;
|
|
35
|
+
};
|
|
36
|
+
type AzureApplicationInsightsLoggerOptions = AzureApplicationInsightsLoggerOptionsBase & {
|
|
37
|
+
defaultLevel: string;
|
|
38
|
+
levels?: LogLevels;
|
|
39
|
+
};
|
|
23
40
|
declare abstract class ITelemetryFilterV3 {
|
|
24
41
|
filterTrace(trace: TraceTelemetry, client: TelemetryClient): boolean;
|
|
25
42
|
filterException(trace: ExceptionTelemetry, client: TelemetryClient): boolean;
|
|
26
43
|
}
|
|
27
44
|
declare abstract class ITelemetryFilterV2 {
|
|
28
45
|
filterTrace(trace: TraceTelemetry$1, client: TelemetryClient$1): boolean;
|
|
29
|
-
filterException(trace: ExceptionTelemetry, client: TelemetryClient$1): boolean;
|
|
30
|
-
}
|
|
31
|
-
type AzureApplicationInsightsLoggerOptions = AzureInsightsClientOptions & {
|
|
32
|
-
level?: string;
|
|
33
|
-
silent?: boolean;
|
|
34
|
-
sendErrorsAsExceptions?: boolean;
|
|
35
|
-
};
|
|
36
|
-
declare class AzureApplicationInsightsLogger extends TransportStream {
|
|
37
|
-
private readonly options;
|
|
38
|
-
sendErrorsAsExceptions: boolean;
|
|
39
|
-
readonly name: string;
|
|
40
|
-
get client(): TelemetryClient | TelemetryClient$1;
|
|
41
|
-
constructor(options: AzureApplicationInsightsLoggerOptions);
|
|
42
|
-
private handleTrace;
|
|
43
|
-
private handleException;
|
|
44
|
-
log(info: PlainObject, callback: () => void): void;
|
|
46
|
+
filterException(trace: ExceptionTelemetry$1, client: TelemetryClient$1): boolean;
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
type CreateWinstonLoggerOptions = {
|
|
48
50
|
insights: AzureApplicationInsightsLoggerOptions;
|
|
49
51
|
winston: {
|
|
50
52
|
level?: string;
|
|
53
|
+
levels?: LogLevels;
|
|
51
54
|
defaultMeta?: JsonObject;
|
|
52
55
|
console: boolean;
|
|
53
56
|
format?: Format[];
|
|
@@ -60,4 +63,20 @@ declare const isRunningInAzure: () => boolean;
|
|
|
60
63
|
|
|
61
64
|
declare const isRunningLocally: () => boolean;
|
|
62
65
|
|
|
66
|
+
declare class AzureApplicationInsightsLogger extends TransportStream {
|
|
67
|
+
private readonly options;
|
|
68
|
+
sendErrorsAsExceptions: boolean;
|
|
69
|
+
readonly name: string;
|
|
70
|
+
get client(): TelemetryClient | TelemetryClient$1;
|
|
71
|
+
constructor(options: AzureApplicationInsightsLoggerOptions);
|
|
72
|
+
private handleTrace;
|
|
73
|
+
private handleException;
|
|
74
|
+
private trackTraceV2;
|
|
75
|
+
private trackTraceV3;
|
|
76
|
+
private trackExceptionV2;
|
|
77
|
+
private trackExceptionV3;
|
|
78
|
+
log(info: PlainObject, callback: () => void): void;
|
|
79
|
+
private getSeverity;
|
|
80
|
+
}
|
|
81
|
+
|
|
63
82
|
export { AzureApplicationInsightsLogger, type AzureApplicationInsightsLoggerOptions, type CreateWinstonLoggerOptions, ITelemetryFilterV2, ITelemetryFilterV3, createWinstonLogger, isRunningInAzure, isRunningLocally };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("winston");function t(e){return e&&e.__esModule?e:{default:e}}var r=t(require("winston-transport")),s=Object.defineProperty,
|
|
1
|
+
"use strict";var e=require("winston");function t(e){return e&&e.__esModule?e:{default:e}}var r=t(require("winston-transport")),s=Object.defineProperty,i=(e,t)=>s(e,"name",{value:t,configurable:!0}),o=class{static{i(this,"ITelemetryFilterV3")}filterTrace(e,t){return!0}filterException(e,t){return!0}},n=class{static{i(this,"ITelemetryFilterV2")}filterTrace(e,t){return!0}filterException(e,t){return!0}},c={error:3,warn:2,http:1,info:1,verbose:0,debug:0,silly:0},l={v2:{0:0,1:1,2:2,3:3,4:4},v3:{0:"Verbose",1:"Information",2:"Warning",3:"Error",4:"Critical"}},a=i((e=>e instanceof Error),"isErrorLike"),p=i((e=>null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype),"isPlainObject"),f=i((e=>"object"!=typeof e||p(e)?e:{...e}),"convertToPlainObject"),g=i((e=>{const t=["level","message"];return Object.keys(e).filter((e=>!t.includes(e))).reduce(((t,r)=>(t[r]=f(e[r]),t)),{})}),"extractPropsFromInfo"),u=i((e=>{const t={message:e.message};for(const[r,s]of Object.entries(e))"stack"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=f(s));return t}),"extractErrorPropsForTrace"),h=class extends r.default{constructor(e){super({level:e.defaultLevel??"info",silent:e.silent??!1}),this.options=e,this.name="applicationinsightslogger",this.sendErrorsAsExceptions=e.sendErrorsAsExceptions??!0}static{i(this,"AzureApplicationInsightsLogger")}sendErrorsAsExceptions;name;get client(){return this.options.client}handleTrace(e,t,r,s){const i=g(t);if(a(t)&&Object.assign(i,u(t)),Object.assign(i,s),3===this.options.version){const t={message:String(r),severity:l.v3[e],properties:i};this.trackTraceV3(t)}else{const t={message:String(r),severity:l.v2[e],properties:i};this.trackTraceV2(t)}}handleException(e,t,r){let s;if(a(e))s=e;else if(a(t))s=t;else{if(!a(r))return;s=r}const i={};"string"==typeof t&&s.message!==t&&(i.message=t),s!==r&&Object.assign(i,r),3===this.options.version?this.trackExceptionV3({exception:s,properties:i}):this.trackExceptionV2({exception:s,properties:i})}trackTraceV2(e){for(const t of this.options.filters??[])if(!t.filterTrace(e,this.options.client))return;this.options.client.trackTrace(e)}trackTraceV3(e){for(const t of this.options.filters??[])if(!t.filterTrace(e,this.options.client))return;this.options.client.trackTrace(e)}trackExceptionV2(e){for(const t of this.options.filters??[])if(!t.filterException(e,this.options.client))return;this.options.client.trackException(e)}trackExceptionV3(e){for(const t of this.options.filters??[])if(!t.filterException(e,this.options.client))return;this.options.client.trackException(e)}log(e,t){const{level:r,message:s}=e,i=this.getSeverity(r),o=Reflect.get(e,Symbol.for("splat"))??[],n=o.length?o[0]:{};this.handleTrace(i,e,s,n),this.sendErrorsAsExceptions&&i>=3&&this.handleException(e,s,n),t()}getSeverity(e){return(this.options.levels??c)[e]??this.options.defaultLevel}},v={error:0,warn:1,info:2,http:3,verbose:4,debug:5,silly:6},x=i((t=>{const r=t.winston.level??"info",s=t.winston.levels??v,i=[new h({...t.insights,defaultLevel:r,levels:s})];t.winston.console&&i.push(new e.transports.Console({format:e.format.json(),stderrLevels:["error","crit","alert","emerg"],consoleWarnLevels:["warn","warning"]}));const o=e.format.combine(...t.winston.format??[],e.format.json());return e.createLogger({level:r,levels:s,format:o,transports:i,defaultMeta:t.winston.defaultMeta})}),"createWinstonLogger"),E=i((()=>void 0!==process.env.WEBSITE_INSTANCE_ID),"isRunningInAzure"),m=i((()=>!E()),"isRunningLocally");exports.AzureApplicationInsightsLogger=h,exports.ITelemetryFilterV2=n,exports.ITelemetryFilterV3=o,exports.createWinstonLogger=x,exports.isRunningInAzure=E,exports.isRunningLocally=m;//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/winston-azure-application-insights.ts","../src/createWinstonLogger.ts"],"names":["TransportStream","transports","format","createLogger"],"mappings":"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","file":"index.js","sourcesContent":["import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { SeverityLevel as KnownSeverityLevelV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry, KnownSeverityLevel as KnownSeverityLevelV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\nimport TransportStream from 'winston-transport';\n\ntype PlainObject = Record<string, any>;\n\nenum SeverityLevel {\n Verbose = 0,\n Information = 1,\n Warning = 2,\n Error = 3,\n Critical = 4,\n}\n\nconst severityLevelsV3: Record<SeverityLevel, KnownSeverityLevelV3> = {\n [SeverityLevel.Verbose]: 'Verbose' as KnownSeverityLevelV3,\n [SeverityLevel.Information]: 'Information' as KnownSeverityLevelV3,\n [SeverityLevel.Warning]: 'Warning' as KnownSeverityLevelV3,\n [SeverityLevel.Error]: 'Error' as KnownSeverityLevelV3,\n [SeverityLevel.Critical]: 'Critical' as KnownSeverityLevelV3,\n};\nconst severityLevelsV2: Record<SeverityLevel, KnownSeverityLevelV2> = {\n [SeverityLevel.Verbose]: 0,\n [SeverityLevel.Information]: 1,\n [SeverityLevel.Warning]: 2,\n [SeverityLevel.Error]: 3,\n [SeverityLevel.Critical]: 4,\n};\n\nconst getMessageLevel = (winstonLevel: string): SeverityLevel => {\n const levels: Record<string, SeverityLevel> = {\n emerg: SeverityLevel.Critical,\n alert: SeverityLevel.Critical,\n crit: SeverityLevel.Critical,\n error: SeverityLevel.Error,\n warning: SeverityLevel.Warning,\n warn: SeverityLevel.Warning,\n notice: SeverityLevel.Information,\n info: SeverityLevel.Information,\n verbose: SeverityLevel.Verbose,\n debug: SeverityLevel.Verbose,\n silly: SeverityLevel.Verbose,\n } as const;\n\n return levels[winstonLevel] ?? SeverityLevel.Information;\n};\n\nconst isErrorLike = (obj: unknown): obj is Error => {\n return obj instanceof Error;\n};\n\nconst isPlainObject = (obj: unknown): obj is PlainObject => {\n return obj !== null && typeof obj === 'object' && Object.getPrototypeOf(obj) === Object.prototype;\n};\n\nconst convertToPlainObject = (obj: any): PlainObject => {\n if (typeof obj !== 'object') {\n return obj;\n }\n if (isPlainObject(obj)) {\n return obj;\n }\n return Object.assign({}, obj);\n};\n\nconst extractPropsFromInfo = (info: PlainObject): PlainObject => {\n const exclude = ['level', 'message'];\n\n return Object.keys(info)\n .filter((key) => !exclude.includes(key))\n .reduce<PlainObject>((props, key) => {\n const value = info[key];\n props[key] = convertToPlainObject(value);\n return props;\n }, {});\n};\n\nconst extractErrorPropsForTrace = (errorLike: Error): PlainObject => {\n const properties: PlainObject = {\n message: errorLike.message,\n };\n for (const [key, value] of Object.entries(errorLike)) {\n if (key !== 'stack' && Object.prototype.hasOwnProperty.call(errorLike, key)) {\n properties[key] = convertToPlainObject(value);\n }\n }\n return properties;\n};\n\ntype AzureInsightsClientOptions =\n | {\n version: 2;\n client: TelemetryClientV2;\n filters?: ITelemetryFilterV2[];\n }\n | {\n version: 3;\n client: TelemetryClientV3;\n filters?: ITelemetryFilterV3[];\n };\n\nexport type FilterTraceArgs = {\n message: string;\n severity: SeverityLevel;\n properties: PlainObject;\n};\n\nexport abstract class ITelemetryFilterV3 {\n public filterTrace(trace: TraceTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetry, client: TelemetryClientV3): boolean {\n return true;\n }\n}\nexport abstract class ITelemetryFilterV2 {\n public filterTrace(trace: TraceTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetry, client: TelemetryClientV2): boolean {\n return true;\n }\n}\n\nexport type AzureApplicationInsightsLoggerOptions = AzureInsightsClientOptions & {\n level?: string;\n silent?: boolean;\n sendErrorsAsExceptions?: boolean;\n};\n\nexport class AzureApplicationInsightsLogger extends TransportStream {\n public sendErrorsAsExceptions: boolean;\n readonly name: string;\n\n public get client(): TelemetryClientV3 | TelemetryClientV2 {\n return this.options.client;\n }\n\n constructor(private readonly options: AzureApplicationInsightsLoggerOptions) {\n super({ level: options.level ?? 'info', silent: options.silent ?? false });\n this.name = 'applicationinsightslogger';\n this.sendErrorsAsExceptions = options.sendErrorsAsExceptions ?? true;\n }\n\n private handleTrace(severity: SeverityLevel, info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const traceProps = extractPropsFromInfo(info);\n let errorArg: Error | undefined;\n\n if (isErrorLike(info)) {\n errorArg = info;\n } else if (isErrorLike(message)) {\n errorArg = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n errorArg = logMeta;\n }\n\n if (errorArg) {\n Object.assign(traceProps, extractErrorPropsForTrace(errorArg));\n }\n\n if (logMeta !== errorArg) {\n Object.assign(traceProps, logMeta);\n }\n\n if (this.options.version === 3) {\n const telemetry: TraceTelemetryV3 = {\n message: String(message),\n severity: severityLevelsV3[severity],\n properties: traceProps,\n };\n for (const f of this.options.filters ?? []) {\n if (!f.filterTrace(telemetry, this.options.client)) {\n return;\n }\n }\n this.options.client.trackTrace(telemetry);\n } else {\n const telemetry: TraceTelemetryV2 = {\n message: String(message),\n severity: severityLevelsV2[severity],\n properties: traceProps,\n };\n for (const f of this.options.filters ?? []) {\n if (!f.filterTrace(telemetry, this.options.client)) {\n return;\n }\n }\n this.options.client.trackTrace(telemetry);\n }\n }\n\n private handleException(info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const exceptionProps: PlainObject = {};\n let exception: Error | undefined;\n\n if (isErrorLike(info)) {\n exception = info;\n } else if (isErrorLike(message)) {\n exception = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n exception = logMeta;\n } else {\n console.log('RETURNING', { message });\n return;\n }\n\n if (typeof message === 'string' && exception.message !== message) {\n exceptionProps.message = message;\n }\n\n if (exception !== logMeta) {\n Object.assign(exceptionProps, logMeta);\n }\n\n const telemetry: ExceptionTelemetry = { exception, properties: exceptionProps };\n if (this.options.version === 2) {\n for (const f of this.options.filters ?? []) {\n if (!f.filterException(telemetry, this.options.client)) {\n return;\n }\n }\n } else {\n for (const f of this.options.filters ?? []) {\n if (!f.filterException(telemetry, this.options.client)) {\n return;\n }\n }\n }\n this.options.client.trackException({ exception, properties: exceptionProps });\n }\n\n override log(info: PlainObject, callback: () => void): void {\n const { level, message } = info;\n const severity = getMessageLevel(level);\n const splat = Reflect.get(info, Symbol.for('splat')) ?? [];\n const logMeta = splat.length ? splat[0] : {};\n\n this.handleTrace(severity, info, message, logMeta);\n\n if (this.sendErrorsAsExceptions && severity >= SeverityLevel.Error) {\n this.handleException(info, message, logMeta);\n }\n\n callback();\n }\n}\n","import { createLogger, format, transports } from 'winston';\nimport type TransportStream from 'winston-transport';\nimport type { CreateWinstonLoggerOptions } from './CreateWinstonLoggerOptions';\nimport { AzureApplicationInsightsLogger } from './winston-azure-application-insights';\n\nexport const createWinstonLogger = (options: CreateWinstonLoggerOptions) => {\n const _transports: TransportStream[] = [new AzureApplicationInsightsLogger(options.insights)];\n\n if (options.winston.console) {\n _transports.push(\n new transports.Console({\n format: format.json(),\n stderrLevels: ['error', 'crit', 'alert', 'emerg'],\n consoleWarnLevels: ['warn', 'warning'],\n }),\n );\n }\n\n const _format = format.combine(...(options.winston.format ?? []), format.json());\n\n return createLogger({\n level: options.winston.level,\n format: _format,\n transports: _transports,\n defaultMeta: options.winston.defaultMeta,\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/logLevels.ts","../src/winston-azure-application-insights.ts","../src/createWinstonLogger.ts","../src/isRunningInAzure.ts","../src/isRunningLocally.ts"],"names":["TransportStream","transports","format","createLogger"],"mappings":";;;;;;;;;;;;;AAqDO,IAAe,qBAAf,MAAkC;AAAA,EArDzC;AAqDyC,IAAA,MAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAChC,WAAA,CAAY,OAAyB,MAAoC,EAAA;AAC9E,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EACO,eAAA,CAAgB,OAA6B,MAAoC,EAAA;AACtF,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,EAAA;AACO,IAAe,qBAAf,MAAkC;AAAA,EA7DzC;AA6DyC,IAAA,MAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAChC,WAAA,CAAY,OAAyB,MAAoC,EAAA;AAC9E,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EACO,eAAA,CAAgB,OAA6B,MAAoC,EAAA;AACtF,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,EAAA;;;AClEO,IAAM,gBAA8B,GAAA;AAAA,EACzC,KAAA,EAAA,CAAA;AAAA,EACA,IAAA,EAAA,CAAA;AAAA,EACA,IAAA,EAAA,CAAA;AAAA,EACA,IAAA,EAAA,CAAA;AAAA,EACA,OAAA,EAAA,CAAA;AAAA,EACA,KAAA,EAAA,CAAA;AAAA,EACA,KAAA,EAAA,CAAA;AACF,CAAA,CAAA;;;ACHA,IAAM,cAAiB,GAAA;AAAA,EACrB,EAAI,EAAA;AAAA,IACF,mBAAoB,CAAA;AAAA,IACpB,uBAAwB,CAAA;AAAA,IACxB,mBAAoB,CAAA;AAAA,IACpB,iBAAkB,CAAA;AAAA,IAClB,oBAAqB,CAAA;AAAA,GACvB;AAAA,EACA,EAAI,EAAA;AAAA,IACF,mBAAoB,SAAA;AAAA,IACpB,uBAAwB,aAAA;AAAA,IACxB,mBAAoB,SAAA;AAAA,IACpB,iBAAkB,OAAA;AAAA,IAClB,oBAAqB,UAAA;AAAA,GACvB;AACF,CAAA,CAAA;AAMA,IAAM,WAAA,2BAAe,GAA+B,KAAA;AAClD,EAAA,OAAO,GAAe,YAAA,KAAA,CAAA;AACxB,CAFoB,EAAA,aAAA,CAAA,CAAA;AAIpB,IAAM,aAAA,2BAAiB,GAAqC,KAAA;AAC1D,EAAO,OAAA,GAAA,KAAQ,QAAQ,OAAO,GAAA,KAAQ,YAAY,MAAO,CAAA,cAAA,CAAe,GAAG,CAAA,KAAM,MAAO,CAAA,SAAA,CAAA;AAC1F,CAFsB,EAAA,eAAA,CAAA,CAAA;AAItB,IAAM,oBAAA,2BAAwB,GAA0B,KAAA;AACtD,EAAI,IAAA,OAAO,QAAQ,QAAU,EAAA;AAC3B,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAA,OAAO,cAAc,GAAG,CAAA,GAAI,GAAM,GAAA,EAAE,GAAG,GAAI,EAAA,CAAA;AAC7C,CAL6B,EAAA,sBAAA,CAAA,CAAA;AAO7B,IAAM,oBAAA,2BAAwB,IAAmC,KAAA;AAC/D,EAAM,MAAA,OAAA,GAAU,CAAC,OAAA,EAAS,SAAS,CAAA,CAAA;AAEnC,EAAA,OAAO,OAAO,IAAK,CAAA,IAAI,CACpB,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA,CAAC,OAAQ,CAAA,QAAA,CAAS,GAAG,CAAC,CAAA,CACtC,MAAoB,CAAA,CAAC,OAAO,GAAQ,KAAA;AACnC,IAAA,KAAA,CAAM,GAAG,CAAA,GAAI,oBAAqB,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAC3C,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,EAAG,EAAE,CAAA,CAAA;AACT,CAT6B,EAAA,sBAAA,CAAA,CAAA;AAW7B,IAAM,yBAAA,2BAA6B,SAAkC,KAAA;AACnE,EAAA,MAAM,UAA0B,GAAA;AAAA,IAC9B,SAAS,SAAU,CAAA,OAAA;AAAA,GACrB,CAAA;AACA,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACpD,IAAI,IAAA,GAAA,KAAQ,WAAW,MAAO,CAAA,SAAA,CAAU,eAAe,IAAK,CAAA,SAAA,EAAW,GAAG,CAAG,EAAA;AAC3E,MAAW,UAAA,CAAA,GAAG,CAAI,GAAA,oBAAA,CAAqB,KAAK,CAAA,CAAA;AAAA,KAC9C;AAAA,GACF;AACA,EAAO,OAAA,UAAA,CAAA;AACT,CAVkC,EAAA,2BAAA,CAAA,CAAA;AAYrB,IAAA,8BAAA,GAAN,cAA6CA,gCAAgB,CAAA;AAAA,EAQlE,YAA6B,OAAgD,EAAA;AAC3E,IAAM,KAAA,CAAA,EAAE,OAAO,OAAQ,CAAA,YAAA,IAAgB,QAAQ,MAAQ,EAAA,OAAA,CAAQ,MAAU,IAAA,KAAA,EAAO,CAAA,CAAA;AADrD,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA,CAAA;AAE3B,IAAA,IAAA,CAAK,IAAO,GAAA,2BAAA,CAAA;AACZ,IAAK,IAAA,CAAA,sBAAA,GAAyB,QAAQ,sBAA0B,IAAA,IAAA,CAAA;AAAA,GAClE;AAAA,EA9EF;AAkEoE,IAAA,MAAA,CAAA,IAAA,EAAA,gCAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAC3D,sBAAA,CAAA;AAAA,EACE,IAAA,CAAA;AAAA,EAET,IAAW,MAAgD,GAAA;AACzD,IAAA,OAAO,KAAK,OAAQ,CAAA,MAAA,CAAA;AAAA,GACtB;AAAA,EAQQ,WAAY,CAAA,QAAA,EAAoB,IAAmB,EAAA,OAAA,EAA6B,OAA4B,EAAA;AAClH,IAAM,MAAA,UAAA,GAAa,qBAAqB,IAAI,CAAA,CAAA;AAE5C,IAAI,IAAA,WAAA,CAAY,IAAI,CAAG,EAAA;AACrB,MAAA,MAAA,CAAO,MAAO,CAAA,UAAA,EAAY,yBAA0B,CAAA,IAAI,CAAC,CAAA,CAAA;AAAA,KAC3D;AAEA,IAAO,MAAA,CAAA,MAAA,CAAO,YAAY,OAAO,CAAA,CAAA;AAEjC,IAAI,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,KAAY,CAAG,EAAA;AAC9B,MAAA,MAAM,SAA8B,GAAA;AAAA,QAClC,OAAA,EAAS,OAAO,OAAO,CAAA;AAAA,QACvB,QAAA,EAAU,cAAe,CAAA,EAAA,CAAG,QAAQ,CAAA;AAAA,QACpC,UAAY,EAAA,UAAA;AAAA,OACd,CAAA;AACA,MAAA,IAAA,CAAK,aAAa,SAAS,CAAA,CAAA;AAAA,KACtB,MAAA;AACL,MAAA,MAAM,SAA8B,GAAA;AAAA,QAClC,OAAA,EAAS,OAAO,OAAO,CAAA;AAAA,QACvB,QAAA,EAAU,cAAe,CAAA,EAAA,CAAG,QAAQ,CAAA;AAAA,QACpC,UAAY,EAAA,UAAA;AAAA,OACd,CAAA;AACA,MAAA,IAAA,CAAK,aAAa,SAAS,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AAAA,EAEQ,eAAA,CAAgB,IAAmB,EAAA,OAAA,EAA6B,OAA4B,EAAA;AAClG,IAAI,IAAA,SAAA,CAAA;AAEJ,IAAI,IAAA,WAAA,CAAY,IAAI,CAAG,EAAA;AACrB,MAAY,SAAA,GAAA,IAAA,CAAA;AAAA,KACd,MAAA,IAAW,WAAY,CAAA,OAAO,CAAG,EAAA;AAC/B,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd,MAAA,IAAW,WAAY,CAAA,OAAO,CAAG,EAAA;AAC/B,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,iBAA8B,EAAC,CAAA;AAErC,IAAA,IAAI,OAAO,OAAA,KAAY,QAAY,IAAA,SAAA,CAAU,YAAY,OAAS,EAAA;AAChE,MAAA,cAAA,CAAe,OAAU,GAAA,OAAA,CAAA;AAAA,KAC3B;AAEA,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MAAO,MAAA,CAAA,MAAA,CAAO,gBAAgB,OAAO,CAAA,CAAA;AAAA,KACvC;AAEA,IAAI,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,KAAY,CAAG,EAAA;AAC9B,MAAA,IAAA,CAAK,gBAAiB,CAAA,EAAE,SAAW,EAAA,UAAA,EAAY,gBAAgB,CAAA,CAAA;AAAA,KAC1D,MAAA;AACL,MAAA,IAAA,CAAK,gBAAiB,CAAA,EAAE,SAAW,EAAA,UAAA,EAAY,gBAAgB,CAAA,CAAA;AAAA,KACjE;AAAA,GACF;AAAA,EAEQ,aAAa,SAAmC,EAAA;AACtD,IAAA,KAAA,MAAW,CAAM,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,IAAW,EAA6B,EAAA;AACpE,MAAA,IAAI,CAAC,CAAE,CAAA,WAAA,CAAY,WAAW,IAAK,CAAA,OAAA,CAAQ,MAA2B,CAAG,EAAA;AACvE,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AACA,IAAC,IAAK,CAAA,OAAA,CAAQ,MAA6B,CAAA,UAAA,CAAW,SAAS,CAAA,CAAA;AAAA,GACjE;AAAA,EAEQ,aAAa,SAAmC,EAAA;AACtD,IAAA,KAAA,MAAW,CAAM,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,IAAW,EAA6B,EAAA;AACpE,MAAA,IAAI,CAAC,CAAE,CAAA,WAAA,CAAY,WAAW,IAAK,CAAA,OAAA,CAAQ,MAA2B,CAAG,EAAA;AACvE,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AACA,IAAC,IAAK,CAAA,OAAA,CAAQ,MAA6B,CAAA,UAAA,CAAW,SAAS,CAAA,CAAA;AAAA,GACjE;AAAA,EAEQ,iBAAiB,SAAuC,EAAA;AAC9D,IAAA,KAAA,MAAW,CAAM,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,IAAW,EAA6B,EAAA;AACpE,MAAA,IAAI,CAAC,CAAE,CAAA,eAAA,CAAgB,WAAW,IAAK,CAAA,OAAA,CAAQ,MAA2B,CAAG,EAAA;AAC3E,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AACA,IAAC,IAAK,CAAA,OAAA,CAAQ,MAA6B,CAAA,cAAA,CAAe,SAAS,CAAA,CAAA;AAAA,GACrE;AAAA,EAEQ,iBAAiB,SAAuC,EAAA;AAC9D,IAAA,KAAA,MAAW,CAAM,IAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,IAAW,EAA6B,EAAA;AACpE,MAAA,IAAI,CAAC,CAAE,CAAA,eAAA,CAAgB,WAAW,IAAK,CAAA,OAAA,CAAQ,MAA2B,CAAG,EAAA;AAC3E,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AACA,IAAC,IAAK,CAAA,OAAA,CAAQ,MAA6B,CAAA,cAAA,CAAe,SAAS,CAAA,CAAA;AAAA,GACrE;AAAA,EAES,GAAA,CAAI,MAAmB,QAA4B,EAAA;AAC1D,IAAM,MAAA,EAAE,KAAO,EAAA,OAAA,EAAY,GAAA,IAAA,CAAA;AAC3B,IAAM,MAAA,QAAA,GAAW,IAAK,CAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AACvC,IAAM,MAAA,KAAA,GAAQ,QAAQ,GAAI,CAAA,IAAA,EAAM,OAAO,GAAI,CAAA,OAAO,CAAC,CAAA,IAAK,EAAC,CAAA;AACzD,IAAA,MAAM,UAAU,KAAM,CAAA,MAAA,GAAS,KAAM,CAAA,CAAC,IAAI,EAAC,CAAA;AAE3C,IAAA,IAAA,CAAK,WAAY,CAAA,QAAA,EAAU,IAAM,EAAA,OAAA,EAAS,OAAO,CAAA,CAAA;AAEjD,IAAI,IAAA,IAAA,CAAK,0BAA0B,QAA4B,IAAA,CAAA,cAAA;AAC7D,MAAK,IAAA,CAAA,eAAA,CAAgB,IAAM,EAAA,OAAA,EAAS,OAAO,CAAA,CAAA;AAAA,KAC7C;AAEA,IAAS,QAAA,EAAA,CAAA;AAAA,GACX;AAAA,EAEQ,YAAY,KAAe,EAAA;AACjC,IAAA,OAAA,CAAQ,KAAK,OAAQ,CAAA,MAAA,IAAU,kBAAkB,KAAK,CAAA,IAAK,KAAK,OAAQ,CAAA,YAAA,CAAA;AAAA,GAC1E;AACF,EAAA;;;ACxLA,IAAM,SAAY,GAAA;AAAA,EAChB,KAAO,EAAA,CAAA;AAAA,EACP,IAAM,EAAA,CAAA;AAAA,EACN,IAAM,EAAA,CAAA;AAAA,EACN,IAAM,EAAA,CAAA;AAAA,EACN,OAAS,EAAA,CAAA;AAAA,EACT,KAAO,EAAA,CAAA;AAAA,EACP,KAAO,EAAA,CAAA;AACT,CAAA,CAAA;AAEa,IAAA,mBAAA,2BAAuB,OAAwC,KAAA;AAC1E,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,OAAA,CAAQ,KAAS,IAAA,MAAA,CAAA;AACvC,EAAM,MAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,CAAQ,MAAU,IAAA,SAAA,CAAA;AAEzC,EAAA,MAAM,WAAiC,GAAA;AAAA,IACrC,IAAI,8BAA+B,CAAA;AAAA,MACjC,GAAG,OAAQ,CAAA,QAAA;AAAA,MACX,YAAc,EAAA,KAAA;AAAA,MACd,MAAA;AAAA,KACD,CAAA;AAAA,GACH,CAAA;AAEA,EAAI,IAAA,OAAA,CAAQ,QAAQ,OAAS,EAAA;AAC3B,IAAY,WAAA,CAAA,IAAA;AAAA,MACV,IAAIC,mBAAW,OAAQ,CAAA;AAAA,QACrB,MAAA,EAAQC,eAAO,IAAK,EAAA;AAAA,QACpB,YAAc,EAAA,CAAC,OAAS,EAAA,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,QAChD,iBAAA,EAAmB,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,OACtC,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AAEA,EAAM,MAAA,OAAA,GAAUA,cAAO,CAAA,OAAA,CAAQ,GAAI,OAAA,CAAQ,OAAQ,CAAA,MAAA,IAAU,EAAC,EAAIA,cAAO,CAAA,IAAA,EAAM,CAAA,CAAA;AAE/E,EAAA,OAAOC,oBAAa,CAAA;AAAA,IAClB,KAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAQ,EAAA,OAAA;AAAA,IACR,UAAY,EAAA,WAAA;AAAA,IACZ,WAAA,EAAa,QAAQ,OAAQ,CAAA,WAAA;AAAA,GAC9B,CAAA,CAAA;AACH,CA/BmC,EAAA,qBAAA,EAAA;;;AChB5B,IAAM,mCAAyB,MAAA,CAAA,MAAA;AACpC,EAAO,OAAA,OAAA,CAAQ,IAAI,mBAAwB,KAAA,KAAA,CAAA,CAAA;AAC7C,CAFgC,EAAA,kBAAA,EAAA;;;ACEzB,IAAM,mCAAyB,MAAA,CAAA,MAAA;AACpC,EAAA,OAAO,CAAC,gBAAiB,EAAA,CAAA;AAC3B,CAFgC,EAAA,kBAAA","file":"index.js","sourcesContent":["import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { ExceptionTelemetry as ExceptionTelemetryV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry as ExceptionTelemetryV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\n\nexport type PlainObject = Record<string, any>;\n\nexport type NodeClient = TelemetryClientV2 | TelemetryClientV3;\n\nexport type JsonValue = string | number | JsonObject | JsonValue[] | null;\nexport type JsonObject = {\n [key: string]: JsonValue;\n};\n\nexport type LogLevels = {\n [key: string]: LogLevel;\n};\n\nexport enum LogLevel {\n Verbose = 0,\n Information = 1,\n Warning = 2,\n Error = 3,\n Critical = 4,\n}\n\nexport type AzureInsightsClientOptions =\n | {\n version: 2;\n client: TelemetryClientV2;\n filters?: ITelemetryFilterV2[];\n }\n | {\n version: 3;\n client: TelemetryClientV3;\n filters?: ITelemetryFilterV3[];\n };\n\nexport type FilterTraceArgs = {\n message: string;\n severity: LogLevel;\n properties: PlainObject;\n};\n\nexport type AzureApplicationInsightsLoggerOptionsBase = AzureInsightsClientOptions & {\n silent?: boolean;\n sendErrorsAsExceptions?: boolean;\n};\n\nexport type AzureApplicationInsightsLoggerOptions = AzureApplicationInsightsLoggerOptionsBase & {\n defaultLevel: string;\n levels?: LogLevels;\n};\n\nexport abstract class ITelemetryFilterV3 {\n public filterTrace(trace: TraceTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n}\nexport abstract class ITelemetryFilterV2 {\n public filterTrace(trace: TraceTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n}\n","import { LogLevel, type LogLevels } from './types';\n\nexport const defaultLogLevels: LogLevels = {\n error: LogLevel.Error,\n warn: LogLevel.Warning,\n http: LogLevel.Information,\n info: LogLevel.Information,\n verbose: LogLevel.Verbose,\n debug: LogLevel.Verbose,\n silly: LogLevel.Verbose,\n};\n","import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { ExceptionTelemetry as ExceptionTelemetryV2, SeverityLevel as KnownSeverityLevelV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry as ExceptionTelemetryV3, KnownSeverityLevel as KnownSeverityLevelV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\nimport TransportStream from 'winston-transport';\nimport { defaultLogLevels } from './logLevels';\nimport { type AzureApplicationInsightsLoggerOptions, type ITelemetryFilterV2, type ITelemetryFilterV3, LogLevel, type LogLevels, type PlainObject } from './types';\n\nconst severityLevels = {\n v2: {\n [LogLevel.Verbose]: 0,\n [LogLevel.Information]: 1,\n [LogLevel.Warning]: 2,\n [LogLevel.Error]: 3,\n [LogLevel.Critical]: 4,\n } satisfies Record<LogLevel, KnownSeverityLevelV2>,\n v3: {\n [LogLevel.Verbose]: 'Verbose' as KnownSeverityLevelV3,\n [LogLevel.Information]: 'Information' as KnownSeverityLevelV3,\n [LogLevel.Warning]: 'Warning' as KnownSeverityLevelV3,\n [LogLevel.Error]: 'Error' as KnownSeverityLevelV3,\n [LogLevel.Critical]: 'Critical' as KnownSeverityLevelV3,\n } satisfies Record<LogLevel, KnownSeverityLevelV3>,\n};\n\nconst getMessageLevel = (levels: LogLevels, level: string): LogLevel => {\n return levels[level];\n};\n\nconst isErrorLike = (obj: unknown): obj is Error => {\n return obj instanceof Error;\n};\n\nconst isPlainObject = (obj: unknown): obj is PlainObject => {\n return obj !== null && typeof obj === 'object' && Object.getPrototypeOf(obj) === Object.prototype;\n};\n\nconst convertToPlainObject = (obj: any): PlainObject => {\n if (typeof obj !== 'object') {\n return obj;\n }\n return isPlainObject(obj) ? obj : { ...obj };\n};\n\nconst extractPropsFromInfo = (info: PlainObject): PlainObject => {\n const exclude = ['level', 'message'];\n\n return Object.keys(info)\n .filter((key) => !exclude.includes(key))\n .reduce<PlainObject>((props, key) => {\n props[key] = convertToPlainObject(info[key]);\n return props;\n }, {});\n};\n\nconst extractErrorPropsForTrace = (errorLike: Error): PlainObject => {\n const properties: PlainObject = {\n message: errorLike.message,\n };\n for (const [key, value] of Object.entries(errorLike)) {\n if (key !== 'stack' && Object.prototype.hasOwnProperty.call(errorLike, key)) {\n properties[key] = convertToPlainObject(value);\n }\n }\n return properties;\n};\n\nexport class AzureApplicationInsightsLogger extends TransportStream {\n public sendErrorsAsExceptions: boolean;\n readonly name: string;\n\n public get client(): TelemetryClientV3 | TelemetryClientV2 {\n return this.options.client;\n }\n\n constructor(private readonly options: AzureApplicationInsightsLoggerOptions) {\n super({ level: options.defaultLevel ?? 'info', silent: options.silent ?? false });\n this.name = 'applicationinsightslogger';\n this.sendErrorsAsExceptions = options.sendErrorsAsExceptions ?? true;\n }\n\n private handleTrace(severity: LogLevel, info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const traceProps = extractPropsFromInfo(info);\n\n if (isErrorLike(info)) {\n Object.assign(traceProps, extractErrorPropsForTrace(info));\n }\n\n Object.assign(traceProps, logMeta);\n\n if (this.options.version === 3) {\n const telemetry: TraceTelemetryV3 = {\n message: String(message),\n severity: severityLevels.v3[severity],\n properties: traceProps,\n };\n this.trackTraceV3(telemetry);\n } else {\n const telemetry: TraceTelemetryV2 = {\n message: String(message),\n severity: severityLevels.v2[severity],\n properties: traceProps,\n };\n this.trackTraceV2(telemetry);\n }\n }\n\n private handleException(info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n let exception: Error | undefined;\n\n if (isErrorLike(info)) {\n exception = info;\n } else if (isErrorLike(message)) {\n exception = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n exception = logMeta;\n } else {\n return;\n }\n\n const exceptionProps: PlainObject = {};\n\n if (typeof message === 'string' && exception.message !== message) {\n exceptionProps.message = message;\n }\n\n if (exception !== logMeta) {\n Object.assign(exceptionProps, logMeta);\n }\n\n if (this.options.version === 3) {\n this.trackExceptionV3({ exception, properties: exceptionProps });\n } else {\n this.trackExceptionV2({ exception, properties: exceptionProps });\n }\n }\n\n private trackTraceV2(telemetry: TraceTelemetryV2): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV2[]) {\n if (!f.filterTrace(telemetry, this.options.client as TelemetryClientV2)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV2).trackTrace(telemetry);\n }\n\n private trackTraceV3(telemetry: TraceTelemetryV3): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV3[]) {\n if (!f.filterTrace(telemetry, this.options.client as TelemetryClientV3)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV3).trackTrace(telemetry);\n }\n\n private trackExceptionV2(telemetry: ExceptionTelemetryV2): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV2[]) {\n if (!f.filterException(telemetry, this.options.client as TelemetryClientV2)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV2).trackException(telemetry);\n }\n\n private trackExceptionV3(telemetry: ExceptionTelemetryV3): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV3[]) {\n if (!f.filterException(telemetry, this.options.client as TelemetryClientV3)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV3).trackException(telemetry);\n }\n\n override log(info: PlainObject, callback: () => void): void {\n const { level, message } = info;\n const severity = this.getSeverity(level);\n const splat = Reflect.get(info, Symbol.for('splat')) ?? [];\n const logMeta = splat.length ? splat[0] : {};\n\n this.handleTrace(severity, info, message, logMeta);\n\n if (this.sendErrorsAsExceptions && severity >= LogLevel.Error) {\n this.handleException(info, message, logMeta);\n }\n\n callback();\n }\n\n private getSeverity(level: string) {\n return (this.options.levels ?? defaultLogLevels)[level] ?? this.options.defaultLevel;\n }\n}\n","import { createLogger, format, transports } from 'winston';\nimport type TransportStream from 'winston-transport';\nimport type { CreateWinstonLoggerOptions } from './CreateWinstonLoggerOptions';\nimport type { LogLevels } from './types';\nimport { AzureApplicationInsightsLogger } from './winston-azure-application-insights';\n\nconst npmLevels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6,\n};\n\nexport const createWinstonLogger = (options: CreateWinstonLoggerOptions) => {\n const level = options.winston.level ?? 'info';\n const levels = options.winston.levels ?? npmLevels;\n\n const _transports: TransportStream[] = [\n new AzureApplicationInsightsLogger({\n ...options.insights,\n defaultLevel: level,\n levels,\n }),\n ];\n\n if (options.winston.console) {\n _transports.push(\n new transports.Console({\n format: format.json(),\n stderrLevels: ['error', 'crit', 'alert', 'emerg'],\n consoleWarnLevels: ['warn', 'warning'],\n }),\n );\n }\n\n const _format = format.combine(...(options.winston.format ?? []), format.json());\n\n return createLogger({\n level,\n levels,\n format: _format,\n transports: _transports,\n defaultMeta: options.winston.defaultMeta,\n });\n};\n","export const isRunningInAzure = () => {\n return process.env.WEBSITE_INSTANCE_ID !== undefined;\n};\n","import { isRunningInAzure } from './isRunningInAzure';\n\nexport const isRunningLocally = () => {\n return !isRunningInAzure();\n};\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{transports as e,format as t,createLogger as
|
|
1
|
+
import{transports as e,format as t,createLogger as r}from"winston";import s from"winston-transport";var i=Object.defineProperty,o=(e,t)=>i(e,"name",{value:t,configurable:!0}),n=class{static{o(this,"ITelemetryFilterV3")}filterTrace(e,t){return!0}filterException(e,t){return!0}},c=class{static{o(this,"ITelemetryFilterV2")}filterTrace(e,t){return!0}filterException(e,t){return!0}},l={error:3,warn:2,http:1,info:1,verbose:0,debug:0,silly:0},a={v2:{0:0,1:1,2:2,3:3,4:4},v3:{0:"Verbose",1:"Information",2:"Warning",3:"Error",4:"Critical"}},p=o((e=>e instanceof Error),"isErrorLike"),f=o((e=>null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype),"isPlainObject"),h=o((e=>"object"!=typeof e||f(e)?e:{...e}),"convertToPlainObject"),g=o((e=>{const t=["level","message"];return Object.keys(e).filter((e=>!t.includes(e))).reduce(((t,r)=>(t[r]=h(e[r]),t)),{})}),"extractPropsFromInfo"),u=o((e=>{const t={message:e.message};for(const[r,s]of Object.entries(e))"stack"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=h(s));return t}),"extractErrorPropsForTrace"),v=class extends s{constructor(e){super({level:e.defaultLevel??"info",silent:e.silent??!1}),this.options=e,this.name="applicationinsightslogger",this.sendErrorsAsExceptions=e.sendErrorsAsExceptions??!0}static{o(this,"AzureApplicationInsightsLogger")}sendErrorsAsExceptions;name;get client(){return this.options.client}handleTrace(e,t,r,s){const i=g(t);if(p(t)&&Object.assign(i,u(t)),Object.assign(i,s),3===this.options.version){const t={message:String(r),severity:a.v3[e],properties:i};this.trackTraceV3(t)}else{const t={message:String(r),severity:a.v2[e],properties:i};this.trackTraceV2(t)}}handleException(e,t,r){let s;if(p(e))s=e;else if(p(t))s=t;else{if(!p(r))return;s=r}const i={};"string"==typeof t&&s.message!==t&&(i.message=t),s!==r&&Object.assign(i,r),3===this.options.version?this.trackExceptionV3({exception:s,properties:i}):this.trackExceptionV2({exception:s,properties:i})}trackTraceV2(e){for(const t of this.options.filters??[])if(!t.filterTrace(e,this.options.client))return;this.options.client.trackTrace(e)}trackTraceV3(e){for(const t of this.options.filters??[])if(!t.filterTrace(e,this.options.client))return;this.options.client.trackTrace(e)}trackExceptionV2(e){for(const t of this.options.filters??[])if(!t.filterException(e,this.options.client))return;this.options.client.trackException(e)}trackExceptionV3(e){for(const t of this.options.filters??[])if(!t.filterException(e,this.options.client))return;this.options.client.trackException(e)}log(e,t){const{level:r,message:s}=e,i=this.getSeverity(r),o=Reflect.get(e,Symbol.for("splat"))??[],n=o.length?o[0]:{};this.handleTrace(i,e,s,n),this.sendErrorsAsExceptions&&i>=3&&this.handleException(e,s,n),t()}getSeverity(e){return(this.options.levels??l)[e]??this.options.defaultLevel}},E={error:0,warn:1,info:2,http:3,verbose:4,debug:5,silly:6},m=o((s=>{const i=s.winston.level??"info",o=s.winston.levels??E,n=[new v({...s.insights,defaultLevel:i,levels:o})];s.winston.console&&n.push(new e.Console({format:t.json(),stderrLevels:["error","crit","alert","emerg"],consoleWarnLevels:["warn","warning"]}));const c=t.combine(...s.winston.format??[],t.json());return r({level:i,levels:o,format:c,transports:n,defaultMeta:s.winston.defaultMeta})}),"createWinstonLogger"),x=o((()=>void 0!==process.env.WEBSITE_INSTANCE_ID),"isRunningInAzure"),b=o((()=>!x()),"isRunningLocally");export{v as AzureApplicationInsightsLogger,c as ITelemetryFilterV2,n as ITelemetryFilterV3,m as createWinstonLogger,x as isRunningInAzure,b as isRunningLocally};//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/winston-azure-application-insights.ts","../src/createWinstonLogger.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { SeverityLevel as KnownSeverityLevelV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry, KnownSeverityLevel as KnownSeverityLevelV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\nimport TransportStream from 'winston-transport';\n\ntype PlainObject = Record<string, any>;\n\nenum SeverityLevel {\n Verbose = 0,\n Information = 1,\n Warning = 2,\n Error = 3,\n Critical = 4,\n}\n\nconst severityLevelsV3: Record<SeverityLevel, KnownSeverityLevelV3> = {\n [SeverityLevel.Verbose]: 'Verbose' as KnownSeverityLevelV3,\n [SeverityLevel.Information]: 'Information' as KnownSeverityLevelV3,\n [SeverityLevel.Warning]: 'Warning' as KnownSeverityLevelV3,\n [SeverityLevel.Error]: 'Error' as KnownSeverityLevelV3,\n [SeverityLevel.Critical]: 'Critical' as KnownSeverityLevelV3,\n};\nconst severityLevelsV2: Record<SeverityLevel, KnownSeverityLevelV2> = {\n [SeverityLevel.Verbose]: 0,\n [SeverityLevel.Information]: 1,\n [SeverityLevel.Warning]: 2,\n [SeverityLevel.Error]: 3,\n [SeverityLevel.Critical]: 4,\n};\n\nconst getMessageLevel = (winstonLevel: string): SeverityLevel => {\n const levels: Record<string, SeverityLevel> = {\n emerg: SeverityLevel.Critical,\n alert: SeverityLevel.Critical,\n crit: SeverityLevel.Critical,\n error: SeverityLevel.Error,\n warning: SeverityLevel.Warning,\n warn: SeverityLevel.Warning,\n notice: SeverityLevel.Information,\n info: SeverityLevel.Information,\n verbose: SeverityLevel.Verbose,\n debug: SeverityLevel.Verbose,\n silly: SeverityLevel.Verbose,\n } as const;\n\n return levels[winstonLevel] ?? SeverityLevel.Information;\n};\n\nconst isErrorLike = (obj: unknown): obj is Error => {\n return obj instanceof Error;\n};\n\nconst isPlainObject = (obj: unknown): obj is PlainObject => {\n return obj !== null && typeof obj === 'object' && Object.getPrototypeOf(obj) === Object.prototype;\n};\n\nconst convertToPlainObject = (obj: any): PlainObject => {\n if (typeof obj !== 'object') {\n return obj;\n }\n if (isPlainObject(obj)) {\n return obj;\n }\n return Object.assign({}, obj);\n};\n\nconst extractPropsFromInfo = (info: PlainObject): PlainObject => {\n const exclude = ['level', 'message'];\n\n return Object.keys(info)\n .filter((key) => !exclude.includes(key))\n .reduce<PlainObject>((props, key) => {\n const value = info[key];\n props[key] = convertToPlainObject(value);\n return props;\n }, {});\n};\n\nconst extractErrorPropsForTrace = (errorLike: Error): PlainObject => {\n const properties: PlainObject = {\n message: errorLike.message,\n };\n for (const [key, value] of Object.entries(errorLike)) {\n if (key !== 'stack' && Object.prototype.hasOwnProperty.call(errorLike, key)) {\n properties[key] = convertToPlainObject(value);\n }\n }\n return properties;\n};\n\ntype AzureInsightsClientOptions =\n | {\n version: 2;\n client: TelemetryClientV2;\n filters?: ITelemetryFilterV2[];\n }\n | {\n version: 3;\n client: TelemetryClientV3;\n filters?: ITelemetryFilterV3[];\n };\n\nexport type FilterTraceArgs = {\n message: string;\n severity: SeverityLevel;\n properties: PlainObject;\n};\n\nexport abstract class ITelemetryFilterV3 {\n public filterTrace(trace: TraceTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetry, client: TelemetryClientV3): boolean {\n return true;\n }\n}\nexport abstract class ITelemetryFilterV2 {\n public filterTrace(trace: TraceTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetry, client: TelemetryClientV2): boolean {\n return true;\n }\n}\n\nexport type AzureApplicationInsightsLoggerOptions = AzureInsightsClientOptions & {\n level?: string;\n silent?: boolean;\n sendErrorsAsExceptions?: boolean;\n};\n\nexport class AzureApplicationInsightsLogger extends TransportStream {\n public sendErrorsAsExceptions: boolean;\n readonly name: string;\n\n public get client(): TelemetryClientV3 | TelemetryClientV2 {\n return this.options.client;\n }\n\n constructor(private readonly options: AzureApplicationInsightsLoggerOptions) {\n super({ level: options.level ?? 'info', silent: options.silent ?? false });\n this.name = 'applicationinsightslogger';\n this.sendErrorsAsExceptions = options.sendErrorsAsExceptions ?? true;\n }\n\n private handleTrace(severity: SeverityLevel, info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const traceProps = extractPropsFromInfo(info);\n let errorArg: Error | undefined;\n\n if (isErrorLike(info)) {\n errorArg = info;\n } else if (isErrorLike(message)) {\n errorArg = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n errorArg = logMeta;\n }\n\n if (errorArg) {\n Object.assign(traceProps, extractErrorPropsForTrace(errorArg));\n }\n\n if (logMeta !== errorArg) {\n Object.assign(traceProps, logMeta);\n }\n\n if (this.options.version === 3) {\n const telemetry: TraceTelemetryV3 = {\n message: String(message),\n severity: severityLevelsV3[severity],\n properties: traceProps,\n };\n for (const f of this.options.filters ?? []) {\n if (!f.filterTrace(telemetry, this.options.client)) {\n return;\n }\n }\n this.options.client.trackTrace(telemetry);\n } else {\n const telemetry: TraceTelemetryV2 = {\n message: String(message),\n severity: severityLevelsV2[severity],\n properties: traceProps,\n };\n for (const f of this.options.filters ?? []) {\n if (!f.filterTrace(telemetry, this.options.client)) {\n return;\n }\n }\n this.options.client.trackTrace(telemetry);\n }\n }\n\n private handleException(info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const exceptionProps: PlainObject = {};\n let exception: Error | undefined;\n\n if (isErrorLike(info)) {\n exception = info;\n } else if (isErrorLike(message)) {\n exception = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n exception = logMeta;\n } else {\n console.log('RETURNING', { message });\n return;\n }\n\n if (typeof message === 'string' && exception.message !== message) {\n exceptionProps.message = message;\n }\n\n if (exception !== logMeta) {\n Object.assign(exceptionProps, logMeta);\n }\n\n const telemetry: ExceptionTelemetry = { exception, properties: exceptionProps };\n if (this.options.version === 2) {\n for (const f of this.options.filters ?? []) {\n if (!f.filterException(telemetry, this.options.client)) {\n return;\n }\n }\n } else {\n for (const f of this.options.filters ?? []) {\n if (!f.filterException(telemetry, this.options.client)) {\n return;\n }\n }\n }\n this.options.client.trackException({ exception, properties: exceptionProps });\n }\n\n override log(info: PlainObject, callback: () => void): void {\n const { level, message } = info;\n const severity = getMessageLevel(level);\n const splat = Reflect.get(info, Symbol.for('splat')) ?? [];\n const logMeta = splat.length ? splat[0] : {};\n\n this.handleTrace(severity, info, message, logMeta);\n\n if (this.sendErrorsAsExceptions && severity >= SeverityLevel.Error) {\n this.handleException(info, message, logMeta);\n }\n\n callback();\n }\n}\n","import { createLogger, format, transports } from 'winston';\nimport type TransportStream from 'winston-transport';\nimport type { CreateWinstonLoggerOptions } from './CreateWinstonLoggerOptions';\nimport { AzureApplicationInsightsLogger } from './winston-azure-application-insights';\n\nexport const createWinstonLogger = (options: CreateWinstonLoggerOptions) => {\n const _transports: TransportStream[] = [new AzureApplicationInsightsLogger(options.insights)];\n\n if (options.winston.console) {\n _transports.push(\n new transports.Console({\n format: format.json(),\n stderrLevels: ['error', 'crit', 'alert', 'emerg'],\n consoleWarnLevels: ['warn', 'warning'],\n }),\n );\n }\n\n const _format = format.combine(...(options.winston.format ?? []), format.json());\n\n return createLogger({\n level: options.winston.level,\n format: _format,\n transports: _transports,\n defaultMeta: options.winston.defaultMeta,\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/logLevels.ts","../src/winston-azure-application-insights.ts","../src/createWinstonLogger.ts","../src/isRunningInAzure.ts","../src/isRunningLocally.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { ExceptionTelemetry as ExceptionTelemetryV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry as ExceptionTelemetryV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\n\nexport type PlainObject = Record<string, any>;\n\nexport type NodeClient = TelemetryClientV2 | TelemetryClientV3;\n\nexport type JsonValue = string | number | JsonObject | JsonValue[] | null;\nexport type JsonObject = {\n [key: string]: JsonValue;\n};\n\nexport type LogLevels = {\n [key: string]: LogLevel;\n};\n\nexport enum LogLevel {\n Verbose = 0,\n Information = 1,\n Warning = 2,\n Error = 3,\n Critical = 4,\n}\n\nexport type AzureInsightsClientOptions =\n | {\n version: 2;\n client: TelemetryClientV2;\n filters?: ITelemetryFilterV2[];\n }\n | {\n version: 3;\n client: TelemetryClientV3;\n filters?: ITelemetryFilterV3[];\n };\n\nexport type FilterTraceArgs = {\n message: string;\n severity: LogLevel;\n properties: PlainObject;\n};\n\nexport type AzureApplicationInsightsLoggerOptionsBase = AzureInsightsClientOptions & {\n silent?: boolean;\n sendErrorsAsExceptions?: boolean;\n};\n\nexport type AzureApplicationInsightsLoggerOptions = AzureApplicationInsightsLoggerOptionsBase & {\n defaultLevel: string;\n levels?: LogLevels;\n};\n\nexport abstract class ITelemetryFilterV3 {\n public filterTrace(trace: TraceTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetryV3, client: TelemetryClientV3): boolean {\n return true;\n }\n}\nexport abstract class ITelemetryFilterV2 {\n public filterTrace(trace: TraceTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n public filterException(trace: ExceptionTelemetryV2, client: TelemetryClientV2): boolean {\n return true;\n }\n}\n","import { LogLevel, type LogLevels } from './types';\n\nexport const defaultLogLevels: LogLevels = {\n error: LogLevel.Error,\n warn: LogLevel.Warning,\n http: LogLevel.Information,\n info: LogLevel.Information,\n verbose: LogLevel.Verbose,\n debug: LogLevel.Verbose,\n silly: LogLevel.Verbose,\n};\n","import type { TelemetryClient as TelemetryClientV2 } from 'applicationinsightsv2';\nimport type { ExceptionTelemetry as ExceptionTelemetryV2, SeverityLevel as KnownSeverityLevelV2, TraceTelemetry as TraceTelemetryV2 } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport type { ExceptionTelemetry as ExceptionTelemetryV3, KnownSeverityLevel as KnownSeverityLevelV3, TelemetryClient as TelemetryClientV3, TraceTelemetry as TraceTelemetryV3 } from 'applicationinsightsv3';\nimport TransportStream from 'winston-transport';\nimport { defaultLogLevels } from './logLevels';\nimport { type AzureApplicationInsightsLoggerOptions, type ITelemetryFilterV2, type ITelemetryFilterV3, LogLevel, type LogLevels, type PlainObject } from './types';\n\nconst severityLevels = {\n v2: {\n [LogLevel.Verbose]: 0,\n [LogLevel.Information]: 1,\n [LogLevel.Warning]: 2,\n [LogLevel.Error]: 3,\n [LogLevel.Critical]: 4,\n } satisfies Record<LogLevel, KnownSeverityLevelV2>,\n v3: {\n [LogLevel.Verbose]: 'Verbose' as KnownSeverityLevelV3,\n [LogLevel.Information]: 'Information' as KnownSeverityLevelV3,\n [LogLevel.Warning]: 'Warning' as KnownSeverityLevelV3,\n [LogLevel.Error]: 'Error' as KnownSeverityLevelV3,\n [LogLevel.Critical]: 'Critical' as KnownSeverityLevelV3,\n } satisfies Record<LogLevel, KnownSeverityLevelV3>,\n};\n\nconst getMessageLevel = (levels: LogLevels, level: string): LogLevel => {\n return levels[level];\n};\n\nconst isErrorLike = (obj: unknown): obj is Error => {\n return obj instanceof Error;\n};\n\nconst isPlainObject = (obj: unknown): obj is PlainObject => {\n return obj !== null && typeof obj === 'object' && Object.getPrototypeOf(obj) === Object.prototype;\n};\n\nconst convertToPlainObject = (obj: any): PlainObject => {\n if (typeof obj !== 'object') {\n return obj;\n }\n return isPlainObject(obj) ? obj : { ...obj };\n};\n\nconst extractPropsFromInfo = (info: PlainObject): PlainObject => {\n const exclude = ['level', 'message'];\n\n return Object.keys(info)\n .filter((key) => !exclude.includes(key))\n .reduce<PlainObject>((props, key) => {\n props[key] = convertToPlainObject(info[key]);\n return props;\n }, {});\n};\n\nconst extractErrorPropsForTrace = (errorLike: Error): PlainObject => {\n const properties: PlainObject = {\n message: errorLike.message,\n };\n for (const [key, value] of Object.entries(errorLike)) {\n if (key !== 'stack' && Object.prototype.hasOwnProperty.call(errorLike, key)) {\n properties[key] = convertToPlainObject(value);\n }\n }\n return properties;\n};\n\nexport class AzureApplicationInsightsLogger extends TransportStream {\n public sendErrorsAsExceptions: boolean;\n readonly name: string;\n\n public get client(): TelemetryClientV3 | TelemetryClientV2 {\n return this.options.client;\n }\n\n constructor(private readonly options: AzureApplicationInsightsLoggerOptions) {\n super({ level: options.defaultLevel ?? 'info', silent: options.silent ?? false });\n this.name = 'applicationinsightslogger';\n this.sendErrorsAsExceptions = options.sendErrorsAsExceptions ?? true;\n }\n\n private handleTrace(severity: LogLevel, info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n const traceProps = extractPropsFromInfo(info);\n\n if (isErrorLike(info)) {\n Object.assign(traceProps, extractErrorPropsForTrace(info));\n }\n\n Object.assign(traceProps, logMeta);\n\n if (this.options.version === 3) {\n const telemetry: TraceTelemetryV3 = {\n message: String(message),\n severity: severityLevels.v3[severity],\n properties: traceProps,\n };\n this.trackTraceV3(telemetry);\n } else {\n const telemetry: TraceTelemetryV2 = {\n message: String(message),\n severity: severityLevels.v2[severity],\n properties: traceProps,\n };\n this.trackTraceV2(telemetry);\n }\n }\n\n private handleException(info: PlainObject, message: string | undefined, logMeta: PlainObject): void {\n let exception: Error | undefined;\n\n if (isErrorLike(info)) {\n exception = info;\n } else if (isErrorLike(message)) {\n exception = message as unknown as Error;\n } else if (isErrorLike(logMeta)) {\n exception = logMeta;\n } else {\n return;\n }\n\n const exceptionProps: PlainObject = {};\n\n if (typeof message === 'string' && exception.message !== message) {\n exceptionProps.message = message;\n }\n\n if (exception !== logMeta) {\n Object.assign(exceptionProps, logMeta);\n }\n\n if (this.options.version === 3) {\n this.trackExceptionV3({ exception, properties: exceptionProps });\n } else {\n this.trackExceptionV2({ exception, properties: exceptionProps });\n }\n }\n\n private trackTraceV2(telemetry: TraceTelemetryV2): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV2[]) {\n if (!f.filterTrace(telemetry, this.options.client as TelemetryClientV2)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV2).trackTrace(telemetry);\n }\n\n private trackTraceV3(telemetry: TraceTelemetryV3): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV3[]) {\n if (!f.filterTrace(telemetry, this.options.client as TelemetryClientV3)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV3).trackTrace(telemetry);\n }\n\n private trackExceptionV2(telemetry: ExceptionTelemetryV2): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV2[]) {\n if (!f.filterException(telemetry, this.options.client as TelemetryClientV2)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV2).trackException(telemetry);\n }\n\n private trackExceptionV3(telemetry: ExceptionTelemetryV3): void {\n for (const f of (this.options.filters ?? []) as ITelemetryFilterV3[]) {\n if (!f.filterException(telemetry, this.options.client as TelemetryClientV3)) {\n return;\n }\n }\n (this.options.client as TelemetryClientV3).trackException(telemetry);\n }\n\n override log(info: PlainObject, callback: () => void): void {\n const { level, message } = info;\n const severity = this.getSeverity(level);\n const splat = Reflect.get(info, Symbol.for('splat')) ?? [];\n const logMeta = splat.length ? splat[0] : {};\n\n this.handleTrace(severity, info, message, logMeta);\n\n if (this.sendErrorsAsExceptions && severity >= LogLevel.Error) {\n this.handleException(info, message, logMeta);\n }\n\n callback();\n }\n\n private getSeverity(level: string) {\n return (this.options.levels ?? defaultLogLevels)[level] ?? this.options.defaultLevel;\n }\n}\n","import { createLogger, format, transports } from 'winston';\nimport type TransportStream from 'winston-transport';\nimport type { CreateWinstonLoggerOptions } from './CreateWinstonLoggerOptions';\nimport type { LogLevels } from './types';\nimport { AzureApplicationInsightsLogger } from './winston-azure-application-insights';\n\nconst npmLevels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6,\n};\n\nexport const createWinstonLogger = (options: CreateWinstonLoggerOptions) => {\n const level = options.winston.level ?? 'info';\n const levels = options.winston.levels ?? npmLevels;\n\n const _transports: TransportStream[] = [\n new AzureApplicationInsightsLogger({\n ...options.insights,\n defaultLevel: level,\n levels,\n }),\n ];\n\n if (options.winston.console) {\n _transports.push(\n new transports.Console({\n format: format.json(),\n stderrLevels: ['error', 'crit', 'alert', 'emerg'],\n consoleWarnLevels: ['warn', 'warning'],\n }),\n );\n }\n\n const _format = format.combine(...(options.winston.format ?? []), format.json());\n\n return createLogger({\n level,\n levels,\n format: _format,\n transports: _transports,\n defaultMeta: options.winston.defaultMeta,\n });\n};\n","export const isRunningInAzure = () => {\n return process.env.WEBSITE_INSTANCE_ID !== undefined;\n};\n","import { isRunningInAzure } from './isRunningInAzure';\n\nexport const isRunningLocally = () => {\n return !isRunningInAzure();\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shellicar/winston-azure-application-insights",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Azure Application Insights transport for Winston",
|
|
6
6
|
"files": [
|
|
@@ -43,23 +43,23 @@
|
|
|
43
43
|
],
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@biomejs/biome": "^1.9.
|
|
46
|
+
"@biomejs/biome": "^1.9.3",
|
|
47
47
|
"@types/mocha": "^10.0.8",
|
|
48
|
-
"@types/node": "^22.
|
|
49
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
50
|
-
"@typescript-eslint/parser": "^8.
|
|
48
|
+
"@types/node": "^22.7.4",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^8.8.0",
|
|
50
|
+
"@typescript-eslint/parser": "^8.8.0",
|
|
51
51
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
52
|
-
"eslint-plugin-import": "^2.
|
|
53
|
-
"globals": "^15.
|
|
52
|
+
"eslint-plugin-import": "^2.31.0",
|
|
53
|
+
"globals": "^15.10.0",
|
|
54
54
|
"logform": "^2.6.1",
|
|
55
55
|
"mocha": "^10.7.3",
|
|
56
56
|
"npm-run-all2": "^6.2.3",
|
|
57
|
-
"terser": "^5.
|
|
57
|
+
"terser": "^5.34.1",
|
|
58
58
|
"testdouble": "^3.20.2",
|
|
59
59
|
"tsup": "^8.3.0",
|
|
60
60
|
"tsx": "^4.19.1",
|
|
61
61
|
"typescript": "^5.6.2",
|
|
62
|
-
"winston": "^3.
|
|
62
|
+
"winston": "^3.15.0"
|
|
63
63
|
},
|
|
64
64
|
"optionalDependencies": {
|
|
65
65
|
"applicationinsightsv2": "npm:applicationinsights@^2",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"winston-transport": "^4.0.0"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"winston-transport": "^4.
|
|
77
|
+
"winston-transport": "^4.8.0"
|
|
78
78
|
},
|
|
79
79
|
"scripts": {
|
|
80
80
|
"demo": "tsx demo.ts",
|