Nothing
## ----setup, include=FALSE------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
library(tabulog)
library(readr)
library(lubridate)
## ------------------------------------------------------------------------
parser('[0-9]+', f = as.integer, name = 'int') # Name is optional
## ----show_logs, comment=''-----------------------------------------------
log_file <- 'accesslog.txt'
cat(readr::read_file(log_file))
## ----build_template------------------------------------------------------
template <- '{{ ip ip_address }} - - [{{ date date_time }}] "{{ url URL }}"'
## ----date_class----------------------------------------------------------
date_parser <- parser(
'[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2}[ ][\\-\\+][0-9]{4}',
function(x) lubridate::as_datetime(x, format = '%Y-%m-%d:%H:%M:%S %z'),
name = 'date'
)
date_parser
default_classes()[c('ip', 'url')]
## ----parse_logs----------------------------------------------------------
# Naming the date_parser 'date' in the list tells Tabulog to use it to parse
# the field with class 'date' in the template.
parse_logs(readLines(log_file), template, classes = list(date = date_parser))
## ----yaml_template, comment=''-------------------------------------------
template_file <- 'accesslog_template.yml'
cat(readr::read_file(template_file))
## ----custom_formatters---------------------------------------------------
formatters <- list(
date = function(x) lubridate::as_datetime(x, format = '%Y-%m-%d:%H:%M:%S %z')
)
## ----parse_logs_file-----------------------------------------------------
parse_logs_file(log_file, template_file, formatters)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.