Remove separate dump log, use central log facility.

This commit is contained in:
2025-08-19 15:17:19 +01:00
parent f57a5635d9
commit 05906c8818
41 changed files with 704 additions and 1846 deletions

View File

@@ -81,7 +81,6 @@ public partial class Dump
if(sense)
{
_dumpLog.WriteLine(Localization.Core.Could_not_detect_capacity);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_detect_capacity);
return;
@@ -98,7 +97,6 @@ public partial class Dump
if(blocks == 0)
{
_dumpLog.WriteLine(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present);
StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium_or_empty_medium_present);
return;
@@ -115,13 +113,11 @@ public partial class Dump
if(blocks > 262144)
{
dskType = MediaType.MemoryStickProDuo;
_dumpLog.WriteLine(Localization.Core.Media_detected_as_MemoryStick_Pro_Duo);
UpdateStatus?.Invoke(Localization.Core.Media_detected_as_MemoryStick_Pro_Duo);
}
else
{
dskType = MediaType.MemoryStickDuo;
_dumpLog.WriteLine(Localization.Core.Media_detected_as_MemoryStick_Duo);
UpdateStatus?.Invoke(Localization.Core.Media_detected_as_MemoryStick_Duo);
}
@@ -141,9 +137,6 @@ public partial class Dump
// Cannot create image
if(!ret)
{
_dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing);
_dumpLog.WriteLine(outputFormat.ErrorMessage);
StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing +
Environment.NewLine +
outputFormat.ErrorMessage);
@@ -178,7 +171,7 @@ public partial class Dump
return;
}
if(_resume.NextBlock > 0) _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_resume.NextBlock > 0) AaruLogging.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_createGraph)
{
@@ -210,7 +203,6 @@ public partial class Dump
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
UpdateStatus?.Invoke(Localization.Core.Aborted);
_dumpLog.WriteLine(Localization.Core.Aborted);
break;
}
@@ -278,7 +270,7 @@ public partial class Dump
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
ibgLog.Write(i, 0);
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
i += _skip - blocksToRead;
newTrim = true;
}
@@ -324,18 +316,6 @@ public partial class Dump
.Per(imageWriteDuration.Seconds())
.Humanize()));
_dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0,
_dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
_dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0,
ByteSize.FromBytes(blockSize * (blocks + 1))
.Per(totalDuration.Milliseconds())
.Humanize()));
_dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0,
ByteSize.FromBytes(blockSize * (blocks + 1))
.Per(imageWriteDuration.Seconds())
.Humanize()));
#region Trimming
@@ -343,7 +323,6 @@ public partial class Dump
{
_trimStopwatch.Restart();
UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors);
_dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors);
ulong[] tmpArray = _resume.BadBlocks.ToArray();
InitProgress?.Invoke();
@@ -354,7 +333,6 @@ public partial class Dump
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
UpdateStatus?.Invoke(Localization.Core.Aborted);
_dumpLog.WriteLine(Localization.Core.Aborted);
break;
}
@@ -392,8 +370,8 @@ public partial class Dump
EndProgress?.Invoke();
_trimStopwatch.Stop();
_dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0,
_trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
AaruLogging.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0,
_trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
}
#endregion Trimming
@@ -511,7 +489,6 @@ public partial class Dump
md6 = Modes.EncodeMode6(md, _dev.ScsiType);
UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks);
_dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks);
sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _);
if(sense)
@@ -520,9 +497,6 @@ public partial class Dump
.Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading);
AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf));
_dumpLog.WriteLine(Localization.Core
.Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading);
}
else
runningPersistent = true;
@@ -537,7 +511,7 @@ public partial class Dump
if(_aborted)
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
_dumpLog.WriteLine(Localization.Core.Aborted);
AaruLogging.WriteLine(Localization.Core.Aborted);
break;
}
@@ -594,8 +568,6 @@ public partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1,
badSector,
pass));
_dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass);
}
else if(runningPersistent) outputFormat.WriteSector(readBuffer, badSector);
}
@@ -622,7 +594,6 @@ public partial class Dump
md6 = Modes.EncodeMode6(md, _dev.ScsiType);
UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status);
_dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status);
_dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _);
}
@@ -633,7 +604,8 @@ public partial class Dump
_resume.BadBlocks.Sort();
foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad);
foreach(ulong bad in _resume.BadBlocks)
AaruLogging.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad);
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
@@ -654,7 +626,6 @@ public partial class Dump
if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
_imageCloseStopwatch.Restart();
outputFormat.Close();
@@ -663,13 +634,9 @@ public partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0,
_imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
_dumpLog.WriteLine(Localization.Core.Closed_in_0,
_imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second));
if(_aborted)
{
UpdateStatus?.Invoke(Localization.Core.Aborted);
_dumpLog.WriteLine(Localization.Core.Aborted);
return;
}
@@ -679,7 +646,6 @@ public partial class Dump
if(_metadata)
{
UpdateStatus?.Invoke(Localization.Core.Creating_sidecar);
_dumpLog.WriteLine(Localization.Core.Creating_sidecar);
IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath);
var inputPlugin = ImageFormat.Detect(filter) as IMediaImage;
ErrorNumber opened = inputPlugin.Open(filter);
@@ -715,14 +681,6 @@ public partial class Dump
.Per(totalChkDuration.Milliseconds())
.Humanize()));
_dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0,
_sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second));
_dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0,
ByteSize.FromBytes(blockSize * (blocks + 1))
.Per(totalChkDuration.Milliseconds())
.Humanize());
if(_preSidecar != null)
{
_preSidecar.BlockMedias = sidecar.BlockMedias;
@@ -751,10 +709,6 @@ public partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1,
filesystem.type,
filesystem.start));
_dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1,
filesystem.type,
filesystem.start);
}
}

View File

@@ -37,6 +37,7 @@ using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
using Aaru.Logging;
namespace Aaru.Core.Devices.Dumping;
@@ -52,9 +53,6 @@ public partial class Dump
!_outputPlugin.SupportedMediaTypes.Contains(MediaType.MemoryStickProDuo) &&
!_outputPlugin.SupportedMediaTypes.Contains(MediaType.UMD))
{
_dumpLog.WriteLine(Localization.Core
.Selected_output_format_does_not_support_MemoryStick_Duo_or_UMD_cannot_dump);
StoppingErrorMessage?.Invoke(Localization.Core
.Selected_output_format_does_not_support_MemoryStick_Duo_or_UMD_cannot_dump);
@@ -62,7 +60,6 @@ public partial class Dump
}
UpdateStatus?.Invoke(Localization.Core.Checking_if_media_is_UMD_or_MemoryStick);
_dumpLog.WriteLine(Localization.Core.Checking_if_media_is_UMD_or_MemoryStick);
bool sense = _dev.ModeSense6(out byte[] buffer,
out _,
@@ -74,7 +71,6 @@ public partial class Dump
if(sense)
{
_dumpLog.WriteLine(Localization.Core.Could_not_get_MODE_SENSE);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_get_MODE_SENSE);
return;
@@ -84,7 +80,6 @@ public partial class Dump
if(!decoded.HasValue)
{
_dumpLog.WriteLine(Localization.Core.Could_not_decode_MODE_SENSE);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_decode_MODE_SENSE);
return;
@@ -102,13 +97,12 @@ public partial class Dump
if(sense)
{
_dumpLog.WriteLine(Localization.Core.Could_not_read);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read);
return;
}
var tmp = new byte[8];
byte[] tmp = new byte[8];
Array.Copy(buffer, 0x36, tmp, 0, 8);
@@ -120,12 +114,11 @@ public partial class Dump
return;
}
var fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]);
var sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]);
var rootStart = (ushort)(sectorsPerFat * 2 + fatStart);
ushort fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]);
ushort sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]);
ushort rootStart = (ushort)(sectorsPerFat * 2 + fatStart);
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_root_directory_in_sector_0, rootStart));
_dumpLog.WriteLine(Localization.Core.Reading_root_directory_in_sector_0, rootStart);
sense = _dev.Read12(out buffer,
out _,
@@ -145,7 +138,6 @@ public partial class Dump
if(sense)
{
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read);
_dumpLog.WriteLine(Localization.Core.Could_not_read);
return;
}
@@ -164,12 +156,11 @@ public partial class Dump
fatStart,
sectorsPerFat));
_dumpLog.WriteLine(Localization.Core.FAT_starts_at_sector_0_and_runs_for_1_sectors, fatStart, sectorsPerFat);
AaruLogging.WriteLine(Localization.Core.FAT_starts_at_sector_0_and_runs_for_1_sectors, fatStart, sectorsPerFat);
UpdateStatus?.Invoke(Localization.Core.Reading_FAT);
_dumpLog.WriteLine(Localization.Core.Reading_FAT);
var fat = new byte[sectorsPerFat * 512];
byte[] fat = new byte[sectorsPerFat * 512];
uint position = 0;
@@ -197,7 +188,6 @@ public partial class Dump
if(sense)
{
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read);
_dumpLog.WriteLine(Localization.Core.Could_not_read);
return;
}
@@ -208,13 +198,12 @@ public partial class Dump
}
UpdateStatus?.Invoke(Localization.Core.Traversing_FAT);
_dumpLog.WriteLine(Localization.Core.Traversing_FAT);
var previousCluster = BitConverter.ToUInt16(fat, 4);
ushort previousCluster = BitConverter.ToUInt16(fat, 4);
for(var i = 3; i < fat.Length / 2; i++)
for(int i = 3; i < fat.Length / 2; i++)
{
var nextCluster = BitConverter.ToUInt16(fat, i * 2);
ushort nextCluster = BitConverter.ToUInt16(fat, i * 2);
if(nextCluster == previousCluster + 1)
{

View File

@@ -91,7 +91,6 @@ public partial class Dump
if(sense)
{
_dumpLog.WriteLine(Localization.Core.Could_not_read);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read);
return;
@@ -104,7 +103,6 @@ public partial class Dump
ushort umdStart = (ushort)(rootStart + rootSize);
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_root_directory_in_sector_0, rootStart));
_dumpLog.WriteLine(Localization.Core.Reading_root_directory_in_sector_0, rootStart);
sense = _dev.Read12(out readBuffer,
out _,
@@ -123,7 +121,6 @@ public partial class Dump
if(sense)
{
_dumpLog.WriteLine(Localization.Core.Could_not_read);
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read);
return;
@@ -148,13 +145,6 @@ public partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.SCSI_device_type_0, _dev.ScsiType));
UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, dskType));
UpdateStatus?.Invoke(string.Format(Localization.Core.Media_part_number_is_0, mediaPartNumber));
_dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize);
_dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead);
_dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize);
_dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_physical_block, blockSize);
_dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType);
_dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType);
_dumpLog.WriteLine(Localization.Core.Media_part_number_is_0, mediaPartNumber);
bool ret;
@@ -172,9 +162,6 @@ public partial class Dump
// Cannot create image
if(!ret)
{
_dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing);
_dumpLog.WriteLine(outputOptical.ErrorMessage);
StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing +
Environment.NewLine +
outputOptical.ErrorMessage);
@@ -222,7 +209,7 @@ public partial class Dump
return;
}
if(_resume.NextBlock > 0) _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_resume.NextBlock > 0) AaruLogging.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_createGraph)
{
@@ -254,7 +241,6 @@ public partial class Dump
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
UpdateStatus?.Invoke(Localization.Core.Aborted);
_dumpLog.WriteLine(Localization.Core.Aborted);
break;
}
@@ -322,7 +308,7 @@ public partial class Dump
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
ibgLog.Write(i, 0);
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
AaruLogging.Information(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
i += _skip - blocksToRead;
newTrim = true;
}
@@ -367,25 +353,13 @@ public partial class Dump
.Per(imageWriteDuration.Seconds())
.Humanize()));
_dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0,
_dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
_dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0,
ByteSize.FromBytes(blockSize * (blocks + 1))
.Per(totalDuration.Milliseconds())
.Humanize()));
_dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0,
ByteSize.FromBytes(blockSize * (blocks + 1))
.Per(imageWriteDuration.Seconds())
.Humanize()));
#region Trimming
if(_resume.BadBlocks.Count > 0 && !_aborted && _trim && newTrim)
{
_trimStopwatch.Restart();
_dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors);
AaruLogging.WriteLine(Localization.Core.Trimming_skipped_sectors);
ulong[] tmpArray = _resume.BadBlocks.ToArray();
InitProgress?.Invoke();
@@ -395,7 +369,7 @@ public partial class Dump
if(_aborted)
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
_dumpLog.WriteLine(Localization.Core.Aborted);
AaruLogging.WriteLine(Localization.Core.Aborted);
break;
}
@@ -433,8 +407,8 @@ public partial class Dump
EndProgress?.Invoke();
_trimStopwatch.Stop();
_dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0,
_trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
AaruLogging.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0,
_trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)));
}
#endregion Trimming
@@ -528,7 +502,7 @@ public partial class Dump
md6 = Modes.EncodeMode6(md, _dev.ScsiType);
_dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks);
AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks);
sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _);
if(sense)
@@ -537,9 +511,6 @@ public partial class Dump
.Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading);
AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf));
_dumpLog.WriteLine(Localization.Core
.Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading);
}
else
runningPersistent = true;
@@ -554,7 +525,7 @@ public partial class Dump
if(_aborted)
{
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
_dumpLog.WriteLine(Localization.Core.Aborted);
AaruLogging.WriteLine(Localization.Core.Aborted);
break;
}
@@ -611,8 +582,6 @@ public partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1,
badSector,
pass));
_dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass);
}
else if(runningPersistent) outputOptical.WriteSector(readBuffer, badSector);
}
@@ -638,7 +607,7 @@ public partial class Dump
md6 = Modes.EncodeMode6(md, _dev.ScsiType);
_dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status);
AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status);
_dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _);
}
@@ -650,7 +619,8 @@ public partial class Dump
_resume.BadBlocks.Sort();
foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad);
foreach(ulong bad in _resume.BadBlocks)
AaruLogging.Information(Localization.Core.Sector_0_could_not_be_read, bad);
currentTry.Extents = ExtentsConverter.ToMetadata(extents);
@@ -672,19 +642,17 @@ public partial class Dump
if(_preSidecar != null) outputOptical.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
_imageCloseStopwatch.Restart();
outputOptical.Close();
_imageCloseStopwatch.Stop();
_dumpLog.WriteLine(Localization.Core.Closed_in_0,
_imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second));
AaruLogging.WriteLine(Localization.Core.Closed_in_0,
_imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second));
if(_aborted)
{
UpdateStatus?.Invoke(Localization.Core.Aborted);
_dumpLog.WriteLine(Localization.Core.Aborted);
return;
}