#
# See http://www.boost.org/doc/libs/1_60_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.filter_formatter
#
# Many of the property values have to be in quotes, best to just use quotes for all of them.
#
# SYSLOG is the System Log File for logging standard 'debug' type info.
# DATALOG is the Data log File for logging modification to business data.
#
[Core]
# Set DisableLogging to true to disable all logging.
DisableLogging="false"

# SYSLOG - system log
[Sinks.SYSLOG]
Destination="TextFile"
# If Asynchronous true then thread dedicated to writing to log, otherwise blocks main thread to write.
Asynchronous="true"
# If AutoFlush is true then non-buffered output
AutoFlush="false"
# Line Formats available: TimeStamp, Uptime, Severity, LineID (counter), ProcessID, ThreadID, Line, File, Function
# TimeStamp and Uptime support boost date time format:
#    http://www.boost.org/doc/libs/1_60_0/doc/html/date_time/date_time_io.html#date_time.format_flags
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Uptime(format=\"%O:%M:%S.%f\")%][%Channel%][%Severity%] %File%(%Line%) %Function%: %Message%"
# Target directory in which rotated files will be stored.
Target="${AppLocalDataLocation}/logs"
# FileName pattern to use. %N is a counter for files.
FileName="${AppLocalDataLocation}/wsjtx_syslog.log"
TargetFileName="${AppLocalDataLocation}/old_logs/wsjtx_syslog_%Y-%m_%2N.log"
# RotationSize in bytes, File size, in bytes, upon which file rotation will be performed.
# Time based rotation also available via RotationInterval and RotationTimePoint see boost log docs.
RotationSize="5242880" # 5 Mbyte
# If Append is true then do not start a new log file for each session
Append="true"
# EnableFinalRotation will rotate on close, make this false if using Append true
EnableFinalRotation="false"
# Matching used so that only files matching FileName pattern are deleted.
ScanForFiles="Matching"
# MaxSize - Total size of files in the target directory in bytes upon which the oldest file will be deleted.
MaxSize="1073741824" # 1 Gbyte total
# MinFreeSpace - Minimum free space in the Target directory in bytes. Above this value oldest file is deleted.
MinFreeSpace="42949672960" # 40 Gbyte
MaxFiles="50"
# Specify level of log, options are: trace, debug, info, warning, error, fatal
# Since Channel not part of filter all log output will be included.
# If only SYSLOG logging desired, change to: Filter="%Severity% >= trace & %Channel% matches \"SYSLOG\""
Filter="%Severity% >= warning"
     
# DATALOG - data log
[Sinks.DATALOG]
Destination="TextFile"
# If Asynchronous true then thread dedicated to writing to log, otherwise blocks main thread to write.
Asynchronous="true"
# If AutoFlush is true then non-buffered output
AutoFlush="false"
Append="true"
# Line Formats available: TimeStamp, Uptime, Severity, LineID (counter), ProcessID, ThreadID
# TimeStamp and Uptime support boost date time format:
#    http://www.boost.org/doc/libs/1_60_0/doc/html/date_time/date_time_io.html#date_time.format_flags
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Uptime(format=\"%O:%M:%S.%f\")%][%Severity%] %Message%"
# Target directory in which rotated files will be stored.
Target="${AppLocalDataLocation}/logs"
# FileName pattern to use. %N is a counter for files.
FileName="${AppLocalDataLocation}/wsjtx_datalog.log"
TargetFileName="wsjtx_datalog_%5N.log"
# RotationSize in bytes, File size, in bytes, upon which file rotation will be performed.
# Time based rotation also available via RotationInterval and RotationTimePoint see boost log docs.
RotationSize="5242880"
EnableFinalRotation="false"
# Matching used so that only files matching FileName pattern are deleted.
ScanForFiles="Matching"
# MaxSize - Total size of files in the target directory in bytes upon which the oldest file will be deleted.
MaxSize="1073741824"
# MinFreeSpace - Minimum free space in the Target directory in bytes. Above this value oldest file is deleted.
MinFreeSpace="42949672960"
MaxFiles="10"
# Specify level of log, options are: trace, debug, info, warning, error, fatal
# Specify Channel otherwise all log output will be included.
Filter="%Severity% >= info & %Channel% matches \"DATALOG\""
     
# Console log, logs both DATALOG and SYSLOG
[Sinks.Console]
# Remove the following lines to disable console logging
Destination="Console"
# If AutoFlush is true then non-buffered output
AutoFlush="true"
# Line Formats available: TimeStamp, Uptime, Severity, LineID (counter), ProcessID, ThreadID
# TimeStamp and Uptime support boost date time format:
#    http://www.boost.org/doc/libs/1_60_0/doc/html/date_time/date_time_io.html#date_time.format_flags
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Uptime(format=\"%O:%M:%S.%f\")%][%Severity%] - %Message%"
# Specify level of log, options are: trace, debug, info, warning, error, fatal
Filter="%Severity% >= trace"
