Concordia Logging

Concordia supports an error logging and debug logging facility which can be used to retrieve information about the system and the agents executing in the system. The operation of these facilities are controlled via server properties. The runtime properties of a Concordia Server are stored in a file named ServerManager.properties in the Agents\lib subdirectory of the Concordia installation directory. This is a standard Java properties file generated via the java.util.Properties class. The server's properties can be configured either by modifying this file by hand or (except with the Freeware version of Concordia) via the Concordia Administrator (more info here).

Concordia error logging records error conditions within the server. The property Error.severity is used to specify the minimum severity of errors that should be logged and can be set to one of the following values: success, info, warning, error, fatal, internal. Setting the Error.severity property to a value of warning specifies that the server should log any warnings or more serious errors. Another property, named Error.stream specifies where errors should be logged. This property can be set to either the name of a disk file, or to the string "System.out" or "System.err" (which indicate that errors should be logged to the standard output or error streams of the Java VM, respectively). In a production environment where the Concordia Server is running as a daemon process, error logging will most likely be configured to log to a disk file.

Concordia also provides debug logging, which in most cases is used by the Concordia engineering team to diagnose problems. Debug logging is also controlled via properties in the ServerManager.properties file. The property Debug is used to define the debug logging level. When specifying a debug logging level, the user must specify a facility name and a facility logging level. The facility name is a string which identifies the component of the Concordia server for which debugging should be enabled. Some common facility names within Concordia are conduit (which relates to the Agent Manager), EventManager (which relates to the Event Manager), persist(which relates to the Persistent Store Manager and persistence operations, which are not available with the Freeware version of Concordia), and ServerManager (which relates to general Concordia Server maintenance operations). The facility logging level is a number which indicates the level of detail desired in the log. For example a value of 1 specifies a very high level overview of what was occurring in the server; whereas a level of 10 indicates that the server should log low-level operations in great detail. A level of 0 can generally be used to disable logging. A special facility name of ALL (all capitals) can be used to turn logging on for all facilities. Setting up logging could be done by adding lines like the following to the ServerManager.properties file;

Debug=ServerManager=1 conduit=1 persist=1 RemoteDebugServer=0 EventManager=1 Security=2

Debug.stream=/concordia/server.debug

Error.severity=warning

Error.stream=/concordia/server.err

For debugging purposes, on win32 systems the Concordia Server can be started as an interactive process via the Concordia Server Control Panel. (With the Freeware version of Concordia, the Concordia Server can not be run as an NT Service, and always runs interactively.) This can be helpful when used in conjunction with specifying that the server use standard output and standard error for logging, allowing the developer to see error and debug messages in real time as agents travel through the server. On UNIX systems, the shell script named server installed in the Agents\bin\unix subdirectory of the Concordia installation directory accomplishes the same results.