This article describes how to configure basic logging using a .props file regardless of which server application the logging is for. 


Note: The logging for the TcpSubServer is configured using a different file (see How to Configure Logging for the TcPSubServer). In addition, there is an option to generate a DLQ file containing call measurements.


Prerequisites

  • A server installation directory containing all required files to run the server.
  • A .props file located in the same directory as the server application file.
  • Sufficient disk space for the log files and a standard procedure for handling old log files


Systemite can provide an example .prop file or simply copy the following content (provided with typical values) into a text editor. 


.prop file

# Set internal debugging
# log4d.debug=TRUE

log4d.rootCategory=INFO,Fil1
#log4d.rootCategory=DEBUG,Fil1

# Global disable level
# log4d.disable=INFO

# Override global disable level
# log4d.disableOverride=TRUE

# Set category factory
# log4d.categoryFactory=TLogDefaultCategoryFactory

# Set root priority
# log4d.rootCategory=WARN,ODS

# Establish category hierarchy
#log4d.category.myapp=INHERITED,Mem1
#log4d.category.myapp.more=DEBUG,Mem2
#log4d.category.myapp.other=INFO,Mem3,#Email
#log4d.category.alt=ERROR,Mem4,Fil1

# Myapp.other category doesn't log to its parents
#log4d.additive.myapp.other=FALSE

# Create root appender
#log4d.appender.ODS=TLogODSAppender
#log4d.appender.ODS.layout=TLogSimpleLayout

# Create a file appender
log4d.appender.Fil1=TFastLogFileAppender
log4d.appender.Fil1.append=TRUE
log4d.appender.Fil1.fileName=C:\swServerMonitorService.log
log4d.appender.Fil1.errorHandler=TLogOnlyOnceErrorHandler
log4d.appender.Fil1.layout=TLogPatternLayout
log4d.appender.Fil1.layout.pattern=%d [%t] %-5p %-6c %x - %m%n
log4d.appender.Fil1.layout.dateFormat=yyyy-mm-dd hh:mm:ss,zzz

Configuring the Logging

  1. Save the .prop file based on which server it is going to log.

    ApplicationName of .props File
    swServer or swDBServer (the main and mirror server)swServer.props
    swServerMonitorServiceswServerMonitorService.props or swServerMonitorService.exe.nlog (for Gårda (R41) and later

    (Note: For version R40, use the NLog.config file.)
    swExplorer*swExplorer.props
    swNotificationServerswNotificationServer.props
    swNotificationServer.exe.nlog (for Kviberg (R44) and later

    * Note that normally no logging is needed for the swExplorer since error messages display for users. Therefore, this props file can safely be omitted from the configuration.


  2. Open the .props file in a text editor. 
  3. Select which type of logging - INFO or DEBUG - to set for Log4d.rootCategory= and make one of them active.
  4. The INFO level designates informational messages that highlight the progress of the application at coarse-grained level. (default)
  5. The DEBUG Level designates fine-grained informational events that are most useful to debug an application.
    Note: When DEBUG level is used, be aware that the size of the file can become quite large.
  6. Define the file path and name of the log file on the log4d.appender.Fil1.fileName= line.
  7. Set whether or not the log file should be cleared (=false) after restart of the server application or if logging should append on the log4d.appender.Fil1.append= line. The default of append is recommended.
  8. Save your changes. 

Starting the Logging

Logging will start once you start and/or restart the server application.


Note: If a server application GUI is open while you complete the configuration, it must be first closed and then reopened prior to the start/restart for the logging to begin successfully.


Maintaining Log Files

If the decision is made to generate log files, they should have a standard procedure in place to manage them, e.g., archive, delete, or move old files, monitor disk space, etc. If the file you want to move or delete is the one currently being written to by the server, you must first stop the server before moving or deleting it. When you restart the server, a new file will generate.