eider
eider
uses the
logger
package to log messages. Most messages in
eider
are logged at either the DEBUG
level
(when eider
is e.g. parsing information from JSON), or at
the TRACE
level (most functions in eider
log a
TRACE
message containing the execution context).
When running a pipeline, you can set the logging level with either:
which causes the DEBUG
messages to be displayed, or:
which causes both the TRACE
and DEBUG
messages to be displayed.
Additionally, the execution context (which is usually restricted to
TRACE
messages) is also displayed when eider
runs into an error. If you run into an error that does not provide
enough information, please consider submitting
an issue.
Here are a few examples:
{
"source_table": "ae2",
"transformation_type": "COUNT DRACULA",
"grouping_column": "id",
"output_feature_name": "something"
}
In the JSON above (json_examples/logging1.json
),
an invalid transformation_type
is specified. Notice how the
resulting error tells you which JSON file the error occurs in.
{
"source_table": "ae2",
"transformation_type": "COUNT",
"grouping_column": "this_column_doesnt_exist",
"output_feature_name": "something"
}
Here (json_examples/logging2.json
),
a grouping_column
is specified, but such a column does not
exist in the input table.
run_pipeline(
data_sources = list(ae2 = eider_example("random_ae_data.csv")),
feature_filenames = "json_examples/logging2.json"
)
#> Error: The column 'this_column_doesnt_exist' supplied for 'grouping_column' was not found in the input table.
#> Context:
#> > featurise: json_examples/logging2.json
#> > featurise_count
{
"source_table": "ae2",
"transformation_type": "COUNT",
"grouping_column": "id",
"output_feature_name": "something",
"filter": {
"column": "diagnosis_1",
"type": "in",
"value": "a string"
}
}
This example (json_examples/logging3.json
)
specifies that the table should be filtered to only retain rows where
diagnosis_1
is equal to "a string"
, but in the
actual table, diagnosis_1
is an integer.
run_pipeline(
data_sources = list(ae2 = eider_example("random_ae_data.csv")),
feature_filenames = "json_examples/logging3.json"
)
#> Error: The 'value' field of a filter object must be of the same type as the column to be filtered on. However, the column 'diagnosis_1' is of type 'integer', while the value given is of type 'character'.
#> Context:
#> > featurise: json_examples/logging3.json
#> > featurise_count
#> > filter_basic