Line data Source code
1 : import 'dart:async';
2 :
3 : import 'package:logging/logging.dart';
4 : import 'package:the_logger/src/models/models.dart';
5 :
6 : /// Masked log record
7 : class MaskedLogRecord extends LogRecord {
8 : /// Create masked log record
9 6 : MaskedLogRecord(
10 : super.level,
11 : super.message,
12 : super.loggerName,
13 : super.error,
14 : super.stackTrace,
15 : super.zone,
16 : super.object, {
17 : required this.maskedMessage,
18 : required this.maskedError,
19 : required this.maskedStackTrace,
20 : });
21 :
22 : /// Create masked log record from log record fields
23 6 : factory MaskedLogRecord.fromLogRecordFields(
24 : Level level,
25 : String message,
26 : String loggerName,
27 : Object? error,
28 : StackTrace? stackTrace,
29 : Zone? zone,
30 : Object? object, {
31 : MaskingStrings maskingStrings = const {},
32 : }) {
33 6 : return MaskedLogRecord(
34 : level,
35 : message,
36 : loggerName,
37 : error,
38 : stackTrace,
39 : zone,
40 : object,
41 6 : maskedMessage: maskingStrings.mask(message),
42 8 : maskedError: error == null ? null : maskingStrings.mask(error.toString()),
43 : maskedStackTrace: stackTrace == null
44 : ? null
45 8 : : maskingStrings.mask(stackTrace.toString()),
46 : );
47 : }
48 :
49 : /// Create masked log record from log record
50 5 : factory MaskedLogRecord.fromLogRecord(
51 : LogRecord record, {
52 : required MaskingStrings maskingStrings,
53 : }) =>
54 5 : MaskedLogRecord.fromLogRecordFields(
55 5 : record.level,
56 5 : record.message,
57 5 : record.loggerName,
58 5 : record.error,
59 5 : record.stackTrace,
60 5 : record.zone,
61 5 : record.object,
62 : maskingStrings: maskingStrings,
63 : );
64 :
65 : /// Masked message
66 : final String maskedMessage;
67 :
68 : /// Masked error
69 : final String? maskedError;
70 :
71 : /// Masked stack trace
72 : final String? maskedStackTrace;
73 : }
|