Debugging

There are two ways of debugging an endpoint.

Server side

The endpoint writes its own log files. All log files are located in {connector_dir}/var/log by default. The log directory can be changed in the configuration by using the log_dir parameter. The content of a log entry is a timestamp followed by the level and the log content itself.

Note

Keep in mind that DEBUG messages (checksum, database, rpc and session) are only logged when the log level in the configuration (log.level) is set to debug.

Log format and log level can be defined in the configuration as well.

Valid log formats are

  • json
  • html
  • line (default)
  • mongoDB

Note

See “Formatters” from the Monolog repository if you want to find out about all possible formats.

Valid log levels are

  • alert
  • critical
  • debug
  • emergency
  • error
  • info (default)
  • notice
  • warning

All default log files listed below are suffixed by the current date in ISO 8601 format and have the file extension log.

  • checksum: The linking, reading and writing of the checksums are written into this file.
  • global: Any log information from endpoint controller is written into this file
  • error: Exceptions that are thrown are written into this file
  • linker: Identity linker related information
  • rpc: All requests and responses between JTL-Wawi and endpoint are written into this file.
  • session: All actions of the session handler are written into this file.

More channels can be added by using the logger service from the application. A new log channel can simply created by calling the get method from the logger service with the channel name.

$logger = $application->getLoggerService()->get("my-log-channel");

$logger->info("Something interesting");
../_images/debugging_server.png

RPC viewer plugin

The RPC viewer is an event based plugin, which is listening for RPC calls before and after an action is executed. It has a web interface that shows the communication between client and endpoint in realtime. In order to use it, you need to put it inside the {connector_dir}/plugins/RpcViewer directory, which has to be accessed over a web server.

You can find the plugin on GitHub.

../_images/rpc_viewer.png

Client side

On client side the ‘Connector Tester’ tool for Windows can be used. It shows the direct RPC output in form of a JSON tree structure or HTML. The response time is shown as well. All available RPC calls can be tested with this software. It can be very useful when you just started to implement an endpoint or a connector plugin as well as for debugging or testing purposes. The tester does not send connector ACKs to the endpoint automatically, so you do not have to delete the mappings every time you want to test a pull or statistics request.

The Connector tester can be downloaded here.

../_images/debugging_client.png