Client Logs for Error Logging
NCache provides logging for the client application and at the socket level. Logging is disabled by default, but it can be enabled by specifying log settings through API in the NCache application or NCache configuration file client.ncconf.
These logs contain information on client operations and usage data of operations propagated through the socket server to communicate with the remote server. These logs are created in the default location where NCache logs are saved.
To enable client logs programmatically for a cache, NCache provides CacheConnectionOptions. You can further specify the log level for client logs, as explained below.
Special Considerations
If client.ncconf file contains the
enable-client-log
values and the user passes them throughCacheConnectionOptions
as well, the values passed byCacheConnectionOptions
will be of high priority, and they will be used.If either of the values (EnableClientLogs or LogLevel) is passed through
CacheConnectionOptions
and both of them are set in the client.ncconf, it will read the one provided fromCacheConnectionOptions
and the one not provided inCacheConnectionOptions
, from client.ncconf. For example, if client logs are enabled usingCacheConnectionOptions
andLogLevel
is not specified, it will enable client logs irrespective of the value in client.ncconf and use the value oflog-level
from client.ncconf since it is not provided throughCacheConnectionOptions
.If no values are passed in
CacheConnectionOptions
, it will read the values from client.ncconf.
Prerequisites
- To learn about the standard prerequisites required to work with all NCache client-side features, please refer to the given page on Client-Side API Prerequisites.
- For API details, refer to: ICache, CacheManager, GetCache, CacheConnectionOptions, EnableClientLogs, LogLevel.
Error Logging From API Using Connection Options
In this example, if any values are already present in client.config, they will be overwritten and values provided through CacheConnectionOptions will be used.
string cacheName = "demoCache";
var options = new CacheConnectionOptions();
// Enable client logs by setting the flag true
options.EnableClientLogs = true;
// Set the log level for client logging
options.LogLevel = LogLevel.Debug;
// Connect to the cache with CacheConnectionOptions
ICache cache = CacheManager.GetCache(cacheName, options);
Note
To ensure the operation is fail-safe, it is recommended to handle any potential exceptions within your application, as explained in Handling Failures.
Error Logging From Client Config
If client logs are not enabled through CacheConnectionOptions
it will look for the next possible value, i.e., the value of enable-client-log
in client.ncconf, and use it. In case it is false, logs will not be enabled.
Note
When the LogLevel is not specified through the CacheConnectionOptions
so it will look for the next possible value i.e the value of log-level
in the client.ncconf and use it. In case it is not mentioned there, it will use the default value, i.e., log-level = "error".
Note
If NCache is installed, the client logs are placed in %NCHOME%\bin\log-files\ClientLogs. Otherwise, they are found in the bin folder of the application.
Types of Logging
The following are the types of logging:
INFO: This log level describes some helpful information about any operation performed on cache, such as log starting and stopping state of the state transfer operations.
ERROR: This log flag gives the cause of errors raised during operation execution. This status log helps in most troubleshooting scenarios, such as during the start of a cache exception that occurs for joining with its own replica.
DEBUG: This log option prints detailed information about any operations in the cache, such as information about each operation like a key and cache items during state transfer. This log information analyzes cache issues in detail whenever normal debugging is not possible. But this causes performance degradation for cache operations.