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 7 : 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 7 : 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 7 : return MaskedLogRecord(
34 : level,
35 : message,
36 : loggerName,
37 : error,
38 : stackTrace,
39 : zone,
40 : object,
41 7 : maskedMessage: maskingStrings.mask(message),
42 10 : maskedError: error == null ? null : maskingStrings.mask(error.toString()),
43 : maskedStackTrace: stackTrace == null
44 : ? null
45 10 : : maskingStrings.mask(stackTrace.toString()),
46 : );
47 : }
48 :
49 : /// Create masked log record from log record
50 6 : factory MaskedLogRecord.fromLogRecord(
51 : LogRecord record, {
52 : required MaskingStrings maskingStrings,
53 6 : }) => MaskedLogRecord.fromLogRecordFields(
54 6 : record.level,
55 6 : record.message,
56 6 : record.loggerName,
57 6 : record.error,
58 6 : record.stackTrace,
59 6 : record.zone,
60 6 : record.object,
61 : maskingStrings: maskingStrings,
62 : );
63 :
64 : /// Masked message
65 : final String maskedMessage;
66 :
67 : /// Masked error
68 : final String? maskedError;
69 :
70 : /// Masked stack trace
71 : final String? maskedStackTrace;
72 : }
|