Logary.TextWriter

For LogLines | builtin

Write to any text writer - such as one from System.IO.File.OpenWrite.

Install-Package Logary
open System
open System.IO

open NodaTime
open Logary
open Logary.Configuration
open Logary.Targets
open Logary.Metrics

#if INTERACTIVE
let path = __SOURCE_DIRECTORY__
#else
let path = System.Reflection.Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
[<EntryPoint>]
#endif
let main argv =
  use logary =
    withLogaryManager "TextWriter.Example" (
      withTargets [
        Logary.Targets.TextWriter.create(
            let textConf = 
                TextWriter.TextWriterConf.create(
                    Path.Combine(path, DateTime.UtcNow.ToString("yyyy-MM") + "-happy.log") |> File.AppendText, 
                    Path.Combine(path, DateTime.UtcNow.ToString("yyyy-MM") + "-sad.log") |> File.AppendText)
            let newConf = { textConf with flush = true }
            newConf
        ) (PointName.ofSingle "filelogger")
      ] >>
      withRules [
        Rule.createForTarget (PointName.ofSingle "filelogger")
      ]
    ) |> Hopac.TopLevel.run

  Console.ReadKey true |> ignore
  0