@@ -399,7 +399,10 @@ impl RecordFormatter {
399
399
}
400
400
if self . cfg . always_show_time {
401
401
self . format_timestamp_stub ( & mut fs, s) ;
402
+ fs. complexity += 1 + self . ts_width . chars ;
402
403
}
404
+ } else {
405
+ fs. complexity += 1 + self . ts_width . chars ;
403
406
}
404
407
405
408
//
@@ -415,6 +418,7 @@ impl RecordFormatter {
415
418
let level = level. or_else ( || self . cfg . always_show_level . then ( || LEVEL_UNKNOWN . as_bytes ( ) ) ) ;
416
419
if let Some ( level) = level {
417
420
fs. has_level = true ;
421
+ fs. complexity += 3 + level. len ( ) ;
418
422
self . format_level ( s, & mut fs, level) ;
419
423
}
420
424
@@ -428,17 +432,26 @@ impl RecordFormatter {
428
432
s. batch ( |buf| buf. extend_from_slice ( logger. as_bytes ( ) ) )
429
433
} ) ;
430
434
s. batch ( |buf| buf. extend_from_slice ( self . cfg . punctuation . logger_name_separator . as_bytes ( ) ) ) ;
431
- fs. complexity += logger. len ( ) + 4 ;
435
+ fs. complexity += 2 + logger. len ( ) ;
432
436
fs. first_line_used = true ;
433
437
} ) ;
434
438
}
439
+
440
+ // include caller into cumulative complexity calculation
441
+ if let Some ( caller) = & rec. caller {
442
+ fs. complexity += 3 + match caller {
443
+ Caller :: Text ( text) => text. len ( ) ,
444
+ Caller :: FileLine ( file, line) => file. len ( ) + line. len ( ) + 1 ,
445
+ } ;
446
+ }
447
+
435
448
//
436
449
// message text
437
450
//
438
451
if let Some ( value) = & rec. message {
439
452
match fs. transact ( s, |fs, s| self . format_message ( s, fs, * value) ) {
440
453
Ok ( ( ) ) => {
441
- fs. complexity += 4 ;
454
+ fs. complexity += 2 ;
442
455
fs. first_line_used = true ;
443
456
}
444
457
Err ( MessageFormatError :: ExpansionNeeded ) => {
@@ -968,7 +981,7 @@ impl<'a> FieldFormatter<'a> {
968
981
969
982
let ffv = self . begin ( s, key, value, fs) ;
970
983
971
- fs. complexity += key. len ( ) + 4 ;
984
+ fs. complexity += key. len ( ) + 2 ;
972
985
973
986
let result = if self . rf . cfg . unescape_fields {
974
987
self . format_value ( s, value, fs, filter, setting)
0 commit comments