간단한 코드 스 니펫을 사용하여 log4net 로그 파일에서 zip 파일을 만듭니다. 아래 코드를 참조하십시오.Log4Net 로그 파일에서 zip을 생성하면 System.IO.IOException이 발생합니다.
var logFiles = Directory.GetFiles(log4netfolderName, "*.log*");
using (var zip = ZipFile.Open(destinationDirectory.DirectoryPath + "Test.zip",
ZipArchiveMode.Create))
{
foreach (var file in logFiles)
{
zip.CreateEntryFromFile(file,
Path.GetFileName(file), CompressionLevel.Optimal);
}
}
문제는 log4net 현재 로그 파일을 사용하고 내가 얻을 "다른 프로세스에서 사용 중이기 때문에 프로세스가 파일을 ''에 액세스 할 수 없습니다." (System.IO.IOException)
또한 나는 Process cannot access the file "MyFile.log" because it is being used by another process에 주어진 또는 ZipFile 클래스에하여 FileStream을 사용하는 방법을 잘 모릅니다으로 최소한의 잠금을 사용하는 log4net의 설정을 변경할 수 없습니다. 어떻게 해결해야합니까?
파일 스트림을 사용하여 전체 파일을 읽을 수는 있지만 파일 *에서 * 항목을 만들지는 못합니다. 지금 당장은 모르겠다. 단지 가정 일 뿐이다. –
죄송합니다. 임시 파일을 만들고 청소하지 않으려면 내 마지막 수단이 될 것입니다 ... – CarbineCoder
이것은 내가 당신에게 제안한 것에 대한 이해입니다. 제안 된 접근법에 임시 파일이 없습니다 ... –