아직 베타 버전 인이 응용 프로그램에서 작업 중이므로 로깅 시스템을 설정합니다. 로그가 너무 길어 mailto
url에서 사용할 수 없으므로 텍스트를 축소 한 다음 해독하려고 생각했습니다. 제가 50 줄의 긴 로그를 가지고 있다고 가정하면, 이것은 zef16z1e6f8
과 같은 것을 만들어야하고 로그의 50 줄을 모두 찾는 절차가 있어야합니다. 멋진 TripleDES 암호화가 필요하지 않습니다.문자열을 축소하고 나중에 원본을 찾을 수있는 방법
3
A
답변
1
먼저 전체 로그 콘텐츠를 메일로 보낼 수없는 이유를 다시 한 번 생각해보십시오. 로그가 크지 않은 한 (> 5MB) 로그를 메일로 보내는 것이 좋습니다. 여전히 축소 전략을 추구하고 싶다면 두 가지를 고려해야합니다.
나중에 로그 데이터를 조회하는 데 사용할 수있는 간단한 참조 문자열을 원할 경우 일종의 식별자 (예 : Eugene에서 제안한 GUID) 만 연결할 수 있습니다. 이것은 로그 크기와 상관없이 일정한 길이를 갖는 이점이 있습니다.
또는 로그를 압축하면 데이터가 다소 축소됩니다 (Dan은 언급 한대로 최대 약 90 %까지). 그러나 이것은 가변 길이의 단점을 가지고 있으며 매우 큰 로그의 경우 여전히 크기 제한을 초과 할 수 있습니다. 이 경로를 선택하면 다음과 같은 작업을 수행 할 수 있습니다 (테스트되지 않음).
private string GetCompressedString()
{
byte[] byteArray = Encoding.UTF8.GetBytes("Some long log string");
using (var ms = new MemoryStream())
{
using (var gz = new GZipStream(ms, CompressionMode.Compress, true))
{
ms.Write(byteArray, 0, byteArray.Length);
}
ms.Position = 0;
var compressedBytes = new byte[ms.Length];
ms.Read(compressedBytes, 0, compressedBytes.Length);
return Convert.ToBase64String(compressedBytes);
}
}
본 텍스트 압축은 90-95 % 정도입니다. 당신의 예제는 11 개의 문자를 가지고 있기 때문에 압축되지 않은 데이터는 110에서 116 문자 정도가 될 것입니다. 라인이 2 글자 밖에없는 경우에는 문제가되지 않습니다. 진지하게, 우편 코드를 게시하는 것은 어떻습니까? 사람들은 정기적으로 대용량 파일을 전자 메일로 보냅니다. 압축은 필요하지 않습니다. 자세한 내용은 [이 텍스트를 클릭하고 읽으십시오] (http://whathaveyoutried.com) –
로그 내용에 GUID를 쓰고 로그의 ID로 사용 하시겠습니까? – Eugene