Server-side logs

Developers may find it useful to consult the following logs that are available on Opal servers

/var/log/opal/datashield.log
  • Datashield audit log. Records datashield user actions:
  • the datashield command inspection (line containing "parsing ...") and the validation failure (if any)
  • the datashield command execution (line containing "evaluating ..." or "assigning ...")
/var/log/opal/opal.log
  • General purpose log. Default shows only info, warn and error messages.
/var/log/opal/rest.log
  • Opal web services audit log: who accessed to which rest resource and what was the result
/var/log/opal/stdout.log
  • Opal process output
/var/lib/rserver/logs/Rserve.log
  • Rserve process output
/var/lib/rserver/logs/rserver-admin.log
  • The Rserve process is managed by a small java application (rserver-admin). This one is the general purpose log of this manager (mainly logs starts/stops of the Rserve process)
/var/log/rserver/stdout.log
  • reserver-admin process output

Server log of DataSHIELD analysis commands

Opal keeps a log of all the commands that are run in the server-side R environment. These are stored on the server in:

/var/log/opal/datashield.log

Example

DataSHIELD commands

From the client, we can run the following commands:

ds.dim(x='D')
ds.dim('D', type='combine')
ds.colnames(x='D')
ds.class(x='D$LAB_HDL')
ds.quantileMean(x='D$LAB_HDL')
ds.mean(x='D$LAB_HDL')
ds.log(x='D$LAB_HDL')
ds.log(x='D$LAB_HDL', newobj='log_lab_hdl')
ds.length (x='LAB_HDL_log')
ds.length(x='D$LAB_HDL')
ds.assign(toAssign='D$LAB_HDL-1.562', newobj='LAB_HDL.c')
ds.mean(x='LAB_HDL.c')
ds.table1D(x='D$GENDER')
ds.table2D(x='D$DIS_DIAB', y='D$GENDER')

Log output

This generates the following log output:

2016-01-28 15:00:19,210 INFO  datashield.user - SubjectCredentials 'administrator' creating symbol 'D' from opal data 'DASIM.DASIM'
2016-01-28 15:00:21,635 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'colnames(D)'
2016-01-28 15:00:21,905 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::colnames( D )'
2016-01-28 15:00:36,693 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:36,940 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:37,090 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D)'
2016-01-28 15:00:37,328 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D )'
2016-01-28 15:00:37,487 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'dim(D)'
2016-01-28 15:00:37,752 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::dim( D )'
2016-01-28 15:00:37,889 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:38,128 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:38,264 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D)'
2016-01-28 15:00:38,500 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D )'
2016-01-28 15:00:38,641 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'dim(D)'
2016-01-28 15:00:38,880 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::dim( D )'
2016-01-28 15:00:39,049 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:39,288 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:39,415 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D)'
2016-01-28 15:00:39,653 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D )'
2016-01-28 15:00:39,807 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'colnames(D)'
2016-01-28 15:00:40,044 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::colnames( D )'
2016-01-28 15:00:40,212 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:40,448 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:40,620 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:40,860 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:41,007 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:41,248 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:41,378 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:41,616 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:41,758 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'quantileMeanDS(D$LAB_HDL)'
2016-01-28 15:00:41,996 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::quantileMeanDS( D$LAB_HDL )'
2016-01-28 15:00:42,173 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'length(D$LAB_HDL)'
2016-01-28 15:00:42,412 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::length( D$LAB_HDL )'
2016-01-28 15:00:42,536 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'numNaDS(D$LAB_HDL)'
2016-01-28 15:00:42,772 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::numNaDS( D$LAB_HDL )'
2016-01-28 15:00:42,902 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:43,140 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:43,295 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:43,532 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:43,696 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'meanDS(D$LAB_HDL)'
2016-01-28 15:00:43,936 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::meanDS( D$LAB_HDL )'
2016-01-28 15:00:44,077 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'NROW(D$LAB_HDL)'
2016-01-28 15:00:44,316 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::NROW( D$LAB_HDL )'
2016-01-28 15:00:44,432 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'numNaDS(D$LAB_HDL)'
2016-01-28 15:00:44,668 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::numNaDS( D$LAB_HDL )'
2016-01-28 15:00:44,801 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:45,040 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:45,182 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:45,420 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:45,538 INFO  datashield.user - SubjectCredentials 'administrator' creating symbol 'LAB_HDL_log' from R script 'log(D$LAB_HDL,2.71828182845905)'
2016-01-28 15:00:45,539 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'log(D$LAB_HDL,2.71828182845905)'
2016-01-28 15:00:45,700 INFO  datashield.user - SubjectCredentials 'administrator' assigning 'LAB_HDL_log' with base::log( D$LAB_HDL,2.71828182845905 )
2016-01-28 15:00:45,808 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("LAB_HDL_log")'
2016-01-28 15:00:46,048 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "LAB_HDL_log" )'
2016-01-28 15:00:46,217 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:46,456 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:46,575 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:46,812 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:46,933 INFO  datashield.user - SubjectCredentials 'administrator' creating symbol 'log_lab_hdl' from R script 'log(D$LAB_HDL,2.71828182845905)'
2016-01-28 15:00:46,933 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'log(D$LAB_HDL,2.71828182845905)'
2016-01-28 15:00:47,088 INFO  datashield.user - SubjectCredentials 'administrator' assigning 'log_lab_hdl' with base::log( D$LAB_HDL,2.71828182845905 )
2016-01-28 15:00:47,167 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("log_lab_hdl")'
2016-01-28 15:00:47,404 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "log_lab_hdl" )'
2016-01-28 15:00:47,543 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("LAB_HDL_log")'
2016-01-28 15:00:47,784 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "LAB_HDL_log" )'
2016-01-28 15:00:47,933 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(LAB_HDL_log)'
2016-01-28 15:00:48,172 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( LAB_HDL_log )'
2016-01-28 15:00:48,315 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'length(LAB_HDL_log)'
2016-01-28 15:00:48,556 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::length( LAB_HDL_log )'
2016-01-28 15:00:48,718 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:48,956 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:49,122 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$LAB_HDL)'
2016-01-28 15:00:49,360 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$LAB_HDL )'
2016-01-28 15:00:49,485 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'length(D$LAB_HDL)'
2016-01-28 15:00:49,720 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::length( D$LAB_HDL )'
2016-01-28 15:00:49,837 INFO  datashield.user - SubjectCredentials 'administrator' creating symbol 'LAB_HDL.c' from R script 'D$LAB_HDL-1.562'
2016-01-28 15:00:49,837 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'D$LAB_HDL-1.562'
2016-01-28 15:00:49,992 INFO  datashield.user - SubjectCredentials 'administrator' assigning 'LAB_HDL.c' with D$LAB_HDL-1.562
2016-01-28 15:00:50,091 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("LAB_HDL.c")'
2016-01-28 15:00:50,328 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "LAB_HDL.c" )'
2016-01-28 15:00:50,485 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("LAB_HDL.c")'
2016-01-28 15:00:50,720 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "LAB_HDL.c" )'
2016-01-28 15:00:50,831 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(LAB_HDL.c)'
2016-01-28 15:00:51,072 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( LAB_HDL.c )'
2016-01-28 15:00:51,202 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'meanDS(LAB_HDL.c)'
2016-01-28 15:00:51,444 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::meanDS( LAB_HDL.c )'
2016-01-28 15:00:51,585 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'NROW(LAB_HDL.c)'
2016-01-28 15:00:51,820 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::NROW( LAB_HDL.c )'
2016-01-28 15:00:51,932 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'numNaDS(LAB_HDL.c)'
2016-01-28 15:00:52,172 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::numNaDS( LAB_HDL.c )'
2016-01-28 15:00:52,310 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:52,553 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:52,688 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$GENDER)'
2016-01-28 15:00:52,928 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$GENDER )'
2016-01-28 15:00:53,071 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'table1dDS(D$GENDER)'
2016-01-28 15:00:53,312 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::table1dDS( D$GENDER )'
2016-01-28 15:00:53,473 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:53,708 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:53,813 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'exists("D")'
2016-01-28 15:00:54,052 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::exists( "D" )'
2016-01-28 15:00:54,184 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$DIS_DIAB)'
2016-01-28 15:00:54,420 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$DIS_DIAB )'
2016-01-28 15:00:54,557 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'class(D$GENDER)'
2016-01-28 15:00:54,800 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'base::class( D$GENDER )'
2016-01-28 15:00:54,903 INFO  datashield.user - SubjectCredentials 'administrator' parsing 'table2dDS(D$DIS_DIAB,D$GENDER)'
2016-01-28 15:00:55,144 INFO  datashield.user - SubjectCredentials 'administrator' evaluating 'dsBase::table2dDS( D$DIS_DIAB,D$GENDER )'