ApacheLog
- Import can read various standard log formats, as well as user-customized log formats.
Background & Context
-
- Log files.
- Common variants are Common Log Format, Extended Log File Format and Apache Access Log Format.
- Is used by MathLM, the Wolfram System license manager.
- Plain text format.
- Stores information about web server transactions.
- Represents each record as a line of text.
- Allows user-customized log formats.
- Developed by Apache.
Import
- Import["file","ApacheLog"] imports a log file as a Tabular object.
- Import["file",{"ApacheLog",elem}] imports the specified element.
- Import["file",{"ApacheLog",elem,subelem1,…}] imports subelements subelemi, useful for partial data import.
- The format "ApacheLog" must always be specified when importing log files.
- See the following reference pages for full general information:
-
Import import from a file CloudImport import from a cloud object ImportString import from a string ImportByteArray import from a byte array
Import Elements
- General Import elements:
-
"Elements" list of elements and options available in this file "Summary" summary of the file "Rules" list of rules for all available elements - Data representation elements:
-
"Data" two-dimensional array "Dataset" table data as a Dataset "EventSeries" table data as an EventSeries "Tabular" a Tabular object "TimeSeries" table data as a TimeSeries - Import by default uses the "Tabular" element.
- Subelements for partial data import for the "Tabular" element can take row and column specifications in the form {"Tabular",rows,cols}, where rows and cols can be any of the following:
-
n nth row or column -n counts from the end n;;m from n through m n;;m;;s from n through m with steps of s {n1,n2,…} specific rows or columns ni - Column specifications can also be any of the following:
-
"col" single column "col" {col1,col2,…} list of column names coli - Data descriptor elements:
-
"ColumnLabels" names of columns "ColumnTypes" association with data type for each column "Schema" TabularSchema object - Metadata elements:
-
"ColumnCount" number of columns stored in file "Dimensions" data dimensions "RowCount" number of rows stored in file
Import Options
- General Import options:
-
"DataFormat" Automatic format specification, given as a string "Schema" Automatic schema used to construct Tabular object "TimeColumn" Automatic column to use for times in "EventSeries" and "TimeSeries" elements - Possible settings for the "DataFormat" option include:
-
Automatic automatically determine format specification (default) "ApacheErrorLog" Apache error log format for server issues and diagnostics "CommonLog" Common Log Format (CLF) for basic web traffic "CombinedLog" common log with referrer for web analytics and SEO "CommonLogVHost" common log with virtual host for multi-site hosting environments "RefererLog" only referer log for marketing and SEO format arbitrary fields and record separators - To import a custom log format, use "DataFormat"->format to specify the format of each record consisting of data elements and record separators such as "`Field1` [`Field2`] `Field3`".
- The format specification can be a list of strings and OptionalElements to denote elements that may be absent in some lines.
- Possible settings for the "Schema" option include:
-
schema a complete TabularSchema specification propval a schema property and value (see reference page for TabularSchema) <|"prop1"val1,…|> an association of schema properties and values
Examples
open all close allBasic Examples (2)
Import a log file as a Tabular:
Import["ExampleData/apache_error.log", "ApacheLog"]Import["ExampleData/apache_error.log", {"ApacheLog", "Summary"}]Scope (2)
Import metadata from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "Dimensions"}]Import["ExampleData/apache_error.log", {"ApacheLog", "ColumnTypes"}]Import a sample row of a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "Data", 5}]Import Elements (25)
"ColumnCount" (1)
"ColumnLabels" (1)
"ColumnTypes" (1)
"Data" (7)
Import a log file as a 2D list of values:
Import["ExampleData/apache_error.log", {"ApacheLog", "Data"}]Import a single row from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "Data", 5}]Import["ExampleData/apache_error.log", {"ApacheLog", "Data", {1, 5, 7}}]Import["ExampleData/apache_error.log", {"ApacheLog", "Data", 1 ;; 5}]Import a single element at a given row and column:
Import["ExampleData/apache_error.log", {"ApacheLog", "Data", 5, 5}]Import["ExampleData/apache_error.log", {"ApacheLog", "Data", All, 5}]Import selected columns using column names:
Import["ExampleData/apache_error.log", {"ApacheLog", "Data", All, {"Source", "Referer"}}]"Dataset" (2)
Import a log file as a Dataset:
Import["ExampleData/apache_error.log", {"ApacheLog", "Dataset"}]Import selected columns using column names:
Import["ExampleData/apache_error.log", {"ApacheLog", "Dataset", All, {"Source", "Referer"}}]"Dimensions" (1)
"EventSeries" (1)
Import a log file as an EventSeries:
Import["ExampleData/apache_error.log", {"ApacheLog", "EventSeries"}]Import a single row from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "EventSeries", 5}]Import some specific rows from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "EventSeries", {1, 5}}]Import the first 10 rows of a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "EventSeries", 1 ;; 10}]Import only selected columns using column names:
Import["ExampleData/apache_error.log", {"ApacheLog", "EventSeries", All, {"Date", "Module", "LogLevel"}}]"RowCount" (1)
"Schema" (1)
Get the TabularSchema object:
Import["ExampleData/apache_error.log", {"ApacheLog", "Schema"}]"Summary" (1)
"Tabular" (7)
Import a log file as a Tabular object:
Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular"}]Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", 5}]Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", {1, 5, 7}}]Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", 1 ;; 5}]Import a single element at a given row and column:
Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", 5, 5}]Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", All, 5}]Import selected columns using column names:
Import["ExampleData/apache_error.log", {"ApacheLog", "Tabular", All, {"Source", "Referer"}}]"TimeSeries" (1)
Import a log file as a TimeSeries:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries"}]Import a single row from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries", 5}]Import some specific rows from a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries", {1, 5}}]Import the first 10 rows of a log file:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries", 1 ;; 10}]Import only selected columns using column names:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries", All, {"Date", "Module", "LogLevel"}}]Import Options (7)
"DataFormat" (4)
Import automatically infers format specification from data stored in a log file:
Import["ExampleData/apache_error.log", "ApacheLog"]Specify predefined log format:
Import["ExampleData/apache_error.log", "ApacheLog", "DataFormat" -> "ApacheErrorLog"]Import["ExampleData/apache_error.log", "ApacheLog", "DataFormat" -> "[`Date`] [`Module`:`LogLevel`] [pid `ProcessID`:tid `ThreadID`] `Source`: `Error`: [client `Client`] `Message`, referer `Referer`"]Import log data with optional fields:
log = "Monday [temp = 5C] [precipitation: rain]
Tuesday [temp = 0C]
Wednesday [temp = 2C] [precipitation: hail]";ImportString[log, "ApacheLog", "DataFormat" -> {"`Day` [temp = `Temperature`]", OptionalElement["[precipitation: `Precipitation`]"]}]"Schema" (2)
Import automatically infers column labels and types from data stored in a log file:
tab = Import["ExampleData/apache_error.log", "ApacheLog"]tab["ColumnTypes"]Use "Schema" option to specify column labels and types:
tab = Import["ExampleData/apache_error.log", "ApacheLog", "Schema" -> {"ColumnKeys" -> {"Date", "Module", "LogLevel", "ProcessID", "ThreadID", "Source", "Error", "Client", "Message", "Referer"}, "ElementType" -> {"Date" -> "Date", "ProcessID" -> "Integer32", "ThreadID" -> "Integer64"}}]tab["ColumnTypes"]"TimeColumn" (1)
By default, the time column is selected automatically for "TimeSeries" and "EventSeries" elements:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries"}]Use the "TimeColumn" option to specify the time column:
Import["ExampleData/apache_error.log", {"ApacheLog", "TimeSeries"}, "TimeColumn" -> "ProcessID"]History
Introduced in 2007 (6.0) | Updated in 2025 (14.3) ▪ 2026 (15.0)