From BaseX Documentation

Jump to: navigation, search

This article is part of the Advanced User's Guide. It describes how client operations are logged by the server. The server logs can e.g. be used to get an overview of all processes executed on your server, trace any errors or compile performance statistics.


[edit] Introduction

The server logs are written in plain text. In your Database Directory, you can find a folder named .logs in which all log files are stored with the according date. Note that, depending on your OS and configuration, files and folders beinning with a . may be hidden. The log directory can be changed via the LOGPATH option.

Some more notes on the logging facility:

[edit] RESTXQ

Non-trivial web applications provide the ability for users to sign in and out. User handling can be realized with session attributes (see e. g. the DBA code).

By default, RESTXQ code is run with admin permissions. However, as it is more interesting to know which user has called a function, the RESTXQ user string (which is admin by default, and which will show up in the log data) will be overwritten by the value of an id session attribute. If the request path includes /dba/, the dba session attribute will be assigned.

If the following function is called more than once, joe will appear as user in the second and subsequent log entries:

import module namespace Session = 'http://basex.org/modules/session';
declare %rest:path('/session-id') function local:f() {
  Session:set('id', 'joe'),
  'I am Joe'

[edit] Format

Example 1
01:18:12.892   SERVER           admin   OK        Server was started (port: 1984)
01:18:15.436   jack    REQUEST   XQUERY for $i in 1 to 5 return random:double()
01:18:15.446   jack    OK        Query executed in 2.38 ms.                       2.72 ms
01:18:15.447   jack    REQUEST   EXIT
01:18:15.447   jack    OK                                                         0.39 ms

A server has been started and a user jack has connected to the server to perform a query and exit properly.

Example 2
01:23:33.251   john   OK        QUERY[0] 'hi'   0.44 ms
01:23:33.337   john   OK        ITER[0]         1.14 ms
01:23:33.338   john   OK        INFO[0]         0.36 ms
01:23:33.339   john   OK        CLOSE[0]        0.21 ms
01:23:33.359   john   REQUEST   EXIT
01:23:33.359   john   OK                        0.14 ms

A user john has performed an iterative query, using one of the client APIs.

Example 3
01:31:51.888   admin   REQUEST   [GET] http://localhost:8984/rest/factbook
01:31:51.892   admin   200                                                   4.43 ms

An admin user has accessed the factbook database via REST.

[edit] Changelog

Version 8.6
Personal tools