Skip to content

Commit a76b65b

Browse files
AdamUdovichAdamUdovich
AdamUdovich
authored and
AdamUdovich
committed
updated for comments I did not have questions on / could implement now
1 parent 4b5ee31 commit a76b65b

File tree

2 files changed

+36
-26
lines changed

2 files changed

+36
-26
lines changed

src/Serilog.Sinks.File/Serilog.Sinks.File.csproj

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,7 @@
5454
</ItemGroup>
5555

5656
<ItemGroup>
57-
<Reference Include="System.IO.Compression" />
5857
<Reference Include="System.IO.Compression.FileSystem" />
5958
</ItemGroup>
6059

61-
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
62-
<PackageReference Include="System.IO.Compression.ZipFile">
63-
<Version>4.0.1</Version>
64-
</PackageReference>
65-
</ItemGroup>
66-
6760
</Project>

src/Serilog.Sinks.File/Sinks/File/RollingFileSink.cs

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,18 @@ CompressionType compressionType
7070
_rollOnFileSizeLimit = rollOnFileSizeLimit;
7171
}
7272

73+
/// <summary>
74+
/// Chooses which compression algorithm to run on the log file passed in within the given directory.
75+
/// </summary>
76+
/// <param name="logFile"> The log file to be compressed </param>
77+
/// <param name="logDirectory"> The directory that holds logFile </param>
78+
/// <param name="compressionType"> The compression algorithm to be used. Is of type CompressionType </param>
7379
public void Compress(string logFile, string logDirectory, CompressionType compressionType)
74-
{
75-
var readDirectory = Path.Combine(logDirectory, "new_dir");
76-
80+
{
7781
switch (compressionType)
7882
{
7983
case CompressionType.Zip:
80-
ZipCompress(logFile, logDirectory, readDirectory);
84+
ZipCompress(logFile, logDirectory);
8185
break;
8286
case CompressionType.GZip:
8387
GZipCompress(logFile, logDirectory);
@@ -87,39 +91,51 @@ public void Compress(string logFile, string logDirectory, CompressionType compre
8791
}
8892
}
8993

90-
public void ZipCompress(string prevLog, string logDirectory, string readDirectory)
94+
/// <summary>
95+
/// Uses Zip compression to compress prevLog into a new, zipped directory.
96+
/// The Zip algorithm is from System.IO.Compression
97+
/// </summary>
98+
/// <param name="logFile"> The log file to be compressed </param>
99+
/// <param name="logDirectory"> The directory that holds logFile </param>
100+
public void ZipCompress(string logFile, string logDirectory)
91101
{
102+
var readDirectory = Path.Combine(logDirectory, "new_dir");
92103
Directory.CreateDirectory(readDirectory);
93104
System.IO.File.Move(
94-
Path.Combine(logDirectory, prevLog), Path.Combine(readDirectory, prevLog)
105+
Path.Combine(logDirectory, logFile), Path.Combine(readDirectory, logFile)
95106
);
96107

97-
var zipName = prevLog.Remove(prevLog.Length - 4);
98-
var zip_path = Path.Combine(logDirectory, $"{zipName}-Zip.zip");
108+
var zipName = Path.GetFileNameWithoutExtension(logFile);
109+
var zip_path = Path.Combine(logDirectory, $"{zipName}.zip");
99110
System.IO.Compression.ZipFile.CreateFromDirectory(readDirectory, zip_path);
100111

101112
Directory.Delete(readDirectory, true);
102113
}
103114

104-
public void GZipCompress(string prevLog, string logDirectory)
115+
/// <summary>
116+
/// Uses GZip compression algorithm to compress logFile into a .gzip file
117+
/// The GZip algorithm is from System.IO.Compression
118+
/// </summary>
119+
/// <param name="logFile"> The log file to be compressed </param>
120+
/// <param name="logDirectory"> The directory that holds logFile </param>
121+
public void GZipCompress(string logFile, string logDirectory)
105122
{
106-
var logPath = Path.Combine(logDirectory, prevLog);
107-
byte[] byteArray;
108-
using (FileStream prevLogStream = new FileStream(logPath, FileMode.Open))
109-
{
110-
byteArray = new byte[prevLogStream.Length];
111-
prevLogStream.Read(byteArray, 0, (int)prevLogStream.Length);
112-
}
123+
var logPath = Path.Combine(logDirectory, logFile);
124+
byte[] byteArray = new byte[] { };
125+
126+
byteArray = System.IO.File.ReadAllBytes(logPath);
113127

114-
var logName = prevLog.Remove(prevLog.Length - 4);
115-
var GZipPath = Path.Combine(logDirectory, $"{logName}-GZip.gz");
128+
var logName = Path.GetFileNameWithoutExtension(logFile);
129+
var GZipPath = Path.Combine(logDirectory, $"{logName}.gz");
116130

117131
using (FileStream outFile = new FileStream(GZipPath, FileMode.Create))
118132
using (System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(outFile, System.IO.Compression.CompressionMode.Compress, false))
119133
{
120134
gzipStream.Write(byteArray, 0, byteArray.Length);
121135
}
122136

137+
System.IO.File.WriteAllBytes(GZipPath, byteArray);
138+
123139
System.IO.File.Delete(logPath);
124140
}
125141

@@ -174,7 +190,8 @@ void AlignCurrentFileTo(DateTime now, bool nextSequence = false)
174190
{
175191
var directoryFileName = Path.GetFileName(directoryFile);
176192

177-
if (!(directoryFileName.Contains("-GZip")))
193+
// Not sure if we can assume log files will always be .txt?
194+
if (System.IO.Path.GetExtension(directoryFileName) == ".txt")
178195
{
179196
Compress(directoryFileName, logDirectory, _compressionType);
180197
}

0 commit comments

Comments
 (0)