Eliot' s point is ok for us too. We also mine info about HTTP traffic
out of the log files.
In contradiction to some comments on [1] there is a good motivation for
writing to stdout/err and it's related to the execution of servers
inside docker containers.
"docker logs [my_container_with_basex] -f" would be of great value.
Particularly when running a service on tools such as Portainer that do
not allow users to "exec into" a container. This is currently not
exploitable because the only thing you get is the logs of the server
which is less useful when developing a RESTXQ service for instance
"docker logs" intercepts stdout/stderr. There are some workarounds to
map /dev/stdout to a file. But again, BaseX switches the file every day
so that would also not be feasible.
So, trying to resume:
- put code such as [2] to a trace level reducing impact on standard log
to a on or two liner as for REST calls
- have a standardized logging system (log4j? slf4j?) that allows to
differentiate logs (HTTP, Server) and levels redirecting to file or
console and configuring rotations different from changing the file.
- make the dba GUI not trying to open by default the last log file
because if it is large this causes an OOM that a user cannot avoid
- Bonus: logging options changeable through the dba UI would be
incredibly useful but I can understand possible difficulties here.
O2C :-)
Thanks a lot Christian for paying usual high level attention to your users'!
Regards,
M.
[1] https://github.com/BaseXdb/basex/issues/940
[2]
12:22:27.849 10.0.4.15:50424 admin OK 0.02 CLOSE[0]
> 12:22:27.848 10.0.4.15:50434 admin OK 1.40 FULL[0]
> 12:22:27.848 10.0.4.15:50424 admin OK 0.83 FULL[0]
> 12:22:27.847 10.0.4.15:50420 admin OK 0.05 CLOSE[0]
> 12:22:27.847 10.0.4.15:50412 admin OK 0.04 CLOSE[0]
> 12:22:27.847 10.0.4.15:50434 admin OK 0.05 BIND[0]
On 02/02/23 16:36, Eliot Kimber wrote:
For me, being able to log HTTP requests separately (different log
file) from XQuery-generated would be very helpful. For our Mirabel
server we’ll want to be able to mine usage statistics from the HTTP
request logs but for general administration and monitoring, it’s the
messages generated by the XQuery code serving the pages that are useful.
Cheers,
E.
_____________________________________________
*Eliot Kimber*
Sr Staff Content Engineer
O: 512 554 9368
M: 512 554 9368
servicenow.com <https://www.servicenow.com>
LinkedIn <https://www.linkedin.com/company/servicenow> | Twitter
<https://twitter.com/servicenow> | YouTube
<https://www.youtube.com/user/servicenowinc> | Facebook
<https://www.facebook.com/servicenow>
*From: *BaseX-Talk <basex-talk-boun...@mailman.uni-konstanz.de> on
behalf of Christian Grün <christian.gr...@gmail.com>
*Date: *Thursday, February 2, 2023 at 7:42 AM
*To: *Marco Lettere <m.lett...@gmail.com>
*Cc: *basex-talk@mailman.uni-konstanz.de
<basex-talk@mailman.uni-konstanz.de>
*Subject: *Re: [basex-talk] Reducing logs
[External Email]
Hi Marco,
As this requirement has been reported back to us repeatedly, it’s time
to create an issue for it [1].
I think we’ll replace the general LOG option with a more flexible
variant. We’ll still need to define which levels to offers; any
feedback is welcome. The new option will probably be made available
with BaseX 11 (to be expected around spring).
Ciao,
Christian
[1] https://github.com/BaseXdb/basex/issues/2168
On Thu, Feb 2, 2023 at 1:37 PM Marco Lettere <m.lett...@gmail.com> wrote:
>
> Dear all,
>
> when using the Basex Xquery server (9.7.3) we see that logs such as [1]
> are produced for every query execution.
>
> Since we have a scenario which involves polling and thus we have a lot
> of query executions the log files increase to hundreds om MBs during
a day.
>
> This makes them unmanageable and even cause dba UI to crash with OOM
> exceptions when opening the logs page.
>
> Is there a way to disable this logging (without affecting other logs
> such as HTTP)?
>
> Is it really necessary to log server side query executions at this grain
> by default? Maybe it could be made optional?
>
> Thanks for any support.
>
> Regards,
>
> Marco.
>
> [1]
> 12:22:27.849 10.0.4.15:50424 admin OK 0.02 CLOSE[0]
> 12:22:27.848 10.0.4.15:50434 admin OK 1.40 FULL[0]
> 12:22:27.848 10.0.4.15:50424 admin OK 0.83 FULL[0]
> 12:22:27.847 10.0.4.15:50420 admin OK 0.05 CLOSE[0]
> 12:22:27.847 10.0.4.15:50412 admin OK 0.04 CLOSE[0]
> 12:22:27.847 10.0.4.15:50434 admin OK 0.05 BIND[0]
> db=infrastructures as xs:string
> 12:22:27.846 10.0.4.15:50410 admin OK 0.22 CLOSE[0]
> 12:22:27.846 10.0.4.15:50434 admin OK 0.06 BIND[0]
> id=ontheroad-lxd as xs:string
> 12:22:27.846 10.0.4.15:50424 admin OK 0.05 BIND[0]
> db=infrastructures as xs:string
> 12:22:27.846 10.0.4.15:50420 admin OK 0.62 FULL[0]
> 12:22:27.846 10.0.4.15:50412 admin OK 0.90 FULL[0]
> 12:22:27.846 10.0.4.15:50424 admin OK 0.06 BIND[0]
> id=ontheroad-lxd as xs:string
> 12:22:27.845 10.0.4.15:50380 admin OK 0.02 CLOSE[0]
> 12:22:27.845 10.0.4.15:50366 admin OK 0.01 CLOSE[0]
> 12:22:27.845 10.0.4.15:50402 admin OK 0.02 CLOSE[0]
> 12:22:27.845 10.0.4.15:50420 admin OK 0.04 BIND[0]
> db=infrastructures as xs:string
> 12:22:27.845 10.0.4.15:50386 admin OK 0.02 CLOSE[0]
> 12:22:27.845 10.0.4.15:50410 admin OK 0.88 FULL[0]
> 12:22:27.845 10.0.4.15:50420 admin OK 0.06 BIND[0]
> id=ontheroad-lxd as xs:string
> 12:22:27.845 10.0.4.15:50412 admin OK 0.04 BIND[0]
> db=infrastructures as xs:string
> 12:22:27.845 10.0.4.15:50434 admin OK 0.04 QUERY[0] declare
> variable $id external; declare variable $db external;
> db:open($db)[json/id = $id]
>