+ let extractNumberFromLogfilepath (path : string) : int option =
+ if isNull path then
+ None
+ else
+ let filename = path.Substring (path.LastIndexOf Path.DirectorySeparatorChar + 1)
+ let filenameWithoutExtension = filename.Remove (filename.IndexOf '.')
+ match Int32.TryParse filenameWithoutExtension with
+ | (true, n) -> Some n
+ | _ -> None
+
+ let [<Literal>] MAX_SIZE_FILE = 52428800L // [byte] (50 MB).
+ let [<Literal>] NB_ENTRIES_CHECK_SIZE = 100; // Each 100 entries added we check the size of the log file to test if it is greater than 'MAX_SIZE_FILE'.
+ let [<Literal>] COMPRESS_ARCHIVED_FILES = true
+ let [<Literal>] FILENAME_FORMAT = "{0:D4}.log"
+ let [<Literal>] COMPRESSED_FILE_POSTFIX = ".gzip"
+ let encoding = Encoding.GetEncoding "UTF-8"
+
+ let compress (filename : string) =
+ use inputStream = new FileStream (filename, FileMode.Open, FileAccess.Read)
+ let filenameCompressed = filename + COMPRESSED_FILE_POSTFIX
+ use compressedStream = new GZipStream (new FileStream (filenameCompressed, FileMode.Create, FileAccess.Write), CompressionLevel.Optimal)
+ inputStream.CopyTo compressedStream