Logging tool for Shiny applications: record inputs or outputs changes, and infos about user’s session. All recording is done client-side to not slow down the application and occupy the server.

version cran checks Lifecycle: stable Project Status: Active The project has reached a stable, usable state and is being actively developed. Codecov test coverage R build status


You can install the released version of shinylogs from CRAN with:


And the development version from GitHub with:

# install.packages("remotes")


Call the main function track_usage in server part of application, and specify where to write logs:


track_usage(storage_mode = store_json(path = "logs/"))

The function will record :

See the vignette for more details (?vignette("shinylogs")) or the online version.


Some example of what is recorded with logs from applications available on our Shiny-Server:

Number of connections per applications:

Number of connections over time :

Which tabs (from sidebar in {shinydashboard}) in shinyWidgets gallery are the most seen :

User-agent is recorded per connection and can be parsed with uaparserjs : (unique users are not registered as we use the open source version of shiny-server)


This package use {packer} to manage JavaScript assets, see packer’s documentation for more.

Install nodes modules with:


Modify srcjs/exts/shinylogs.js, then run:


Re-install R package and try track_usage() function.