diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 7531b3fbf0..7233b24f13 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -3755,16 +3755,16 @@ ISO string representation, and sensitive/noisy fields are excluded. sub _unblessed_for_log { my ($self) = @_; - my $data = $self->unblessed; - delete @{$data}{qw(password lastseen updated_on)}; - for my $key ( keys %$data ) { - if ( defined $data->{$key} && $data->{$key} ne '' ) { - $data->{$key} = "$data->{$key}" if blessed( $data->{$key} ); - } else { - delete $data->{$key}; - } + + # Use get_column rather than unblessed to avoid DBIC column inflation: + # date/datetime values are returned as raw ISO strings directly, without + # constructing DateTime objects that we would only immediately stringify. + my %data = map { $_ => $self->get_column($_) } $self->result_source->columns; + delete @data{qw(password lastseen updated_on)}; + for my $key ( keys %data ) { + delete $data{$key} unless defined $data{$key} && $data{$key} ne ''; } - return $data; + return \%data; } =head1 AUTHORS