-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlogr.Rmd
More file actions
136 lines (109 loc) · 4.58 KB
/
Copy pathlogr.Rmd
File metadata and controls
136 lines (109 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
title: "logr"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{logr}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
The **logr** package helps create log files for R scripts. The package
provides easy logging, without the complexity of other logging systems. It is
designed for analysts who simply want a written log of their program
execution. The package is implemented as a wrapper to
the base R `sink()` function.
## How to use
There are really only three **logr** functions:
* `log_open()`
* `log_print()`
* `log_close()`
The `log_open()` function initiates the log. The
`log_print()` function prints an object to the log. The `log_close()` function
closes the log. In normal situations, a user would place the call to
`log_open()` at the top of the program, call `log_print()` as needed in the
program body, and call `log_close()` once at the end of the program.
A sample program is as follows:
```{r eval=FALSE, echo=TRUE}
library(logr)
# Create temp file location
tmp <- file.path(tempdir(), "test.log")
# Open log
lf <- log_open(tmp)
# Send message to log
log_print("High Mileage Cars Subset")
# Perform operations
hmc <- subset(mtcars, mtcars$mpg > 20)
# Print data to log
log_print(hmc)
# Close log
log_close()
# View results
writeLines(readLines(lf))
```
### What to print to the log
You can print to the log anything that you can print to the console: vectors,
lists, and data frames are all valid objects for logging. Under the hood,
**logr** calls the `print()` function on that object, and writes the results
to the log. The `log_print()` function, by default, will also print the
object to the console. That means you can replace calls to `print()` with
`log_print()`, and there will be no loss of convenience during development.
### What the log looks like
The log created by **logr** is simpler than most logging packages. This
log is designed to be human-readable, and increases the traceability of your
activities. There are three main enhancements to a **logr** log:
* A log header
* Notes
* A log footer
Here is an example log, created by the sample program above:
```
=========================================================================
Log Path: C:/Users/dbosa/AppData/Local/Temp/RtmpQtOzhy/log/test.log
Working Directory: C:/packages/logr
User Name: dbosak
R Version: R Under development (unstable) (2020-06-29 r78751)
Machine: BOSAK-MAIN x86-64
Operating System: Windows 10 x64 build 18362
Base Packages: stats graphics grDevices utils datasets methods base
Other Packages: logr_1.2.7 dplyr_1.0.7 testthat_3.1.0
Log Start Time: 2020-06-30 07:15:52
=========================================================================
High Mileage Cars Subset
NOTE: Log Print Time: 2020-06-30 07:15:52
NOTE: Elapsed Time in seconds: 0.0219531059265137
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
NOTE: Data frame has 14 rows and 11 columns.
NOTE: Log Print Time: 2020-06-30 07:15:52
NOTE: Elapsed Time in seconds: 0.0508558750152588
=========================================================================
Log End Time: 2020-06-30 07:15:53
Log Elapsed Time: 0 00:00:00
=========================================================================
```
### Next Steps
For addition exploration of the **logr** package, please read the
following articles:
* [Log Parts](logr-parts.html)
* [Additional Features](logr-features.html)
* [Global Options](logr-globals.html)
* [Aliases for log_print()](logr-put.html)
* [tidylog Integration](logr-tidylog.html)
* [Complete Example](logr-example1.html)