Release Notes

Here's the list of features, changes and fixes for each release

Added

Added additional common bots to the list.

Added

Added Address Sanitizer via '--enable-asan' to the configure options for debugging purposes.

Fixed

Fixed inability to parse JSON keys containing dots.

Fixed

Fixed out-of-bounds access for invalid HTTP status codes.

Fixed

Fixed out-of-bounds access when parsing a log in serial processing mode.

Fixed

Fixed regression introduced in 8f570c, which caused duplicate counts upon restoring from disk via '--restore'.

Added

Added World Map to the Geo Location panel on the HTML report.

Added

Added additional non-official/standard HTTP status codes such as Caddy's 0 HTTP status among others.

Added

Added support for '%z' on strptime for non-glibc systems, such as musl libc in Alpine Linux (Docker container), enabling the use of '--tz'

Changed

Changed the '--hide/ignore-referrer' options to filter by hostname directly without the use of wildcards, e.g., '--ignore-referrer=wiki.google.com'.

Fixed

Fixed inability to parse duplicate specifiers during log format parsing.

Fixed

Fixed regression which previously hindered the ability to modify log, date, and time formats within the TUI dialog. i.e., '# goaccess access.log -c'.

Replaced

Replaced 'remote_ip' with 'client_ip' for Caddy's JSON format, allowing the use of trusted proxies.

Updated

Updated Caddy JSON example log format to handle headers correctly.

Updated

Updated Swedish i18n.

Added

Added support for macOS to the OS detection.

Fixed

Fixed C99 mode issue with initial declarations [CentOS7].

Fixed

Fixed minor typographical, orthographic, and grammatical errors in the German translation.

Fixed

Fixed a regression issue wherein parsing would halt at the first empty log file.

Added

Added multi-threaded log processing with '--jobs=<num>' for a boost in parsing speed, achieving an improvement ranging from 1.26 to 3.65x faster.

Added

Added the 'SEARCH' method to the list of HTTP request methods.

Added

Added compatibility to include the Traefik log format.

Added

Added the ability to gracefully handle SIGQUIT as a signal for shutdown.

Altered

Altered WebSocket server initialization, ensuring it takes place after log-format checks.

Deprecated

Deprecated '--output-format'; now, only the '--output' option is permissible.

Implemented

Implemented mutex locking to prevent a TZ environment race condition.

Fixed

Fixed a potential heap overflow when checking a request for bots.

Fixed

Fixed sorting of child items on HTML panels when sorting a column via the UI.

Fixed

Fixed an issue where, in some cases, the referer host wouldn't be extracted properly

Fixed

Fixed the miscategorization of Android 12.1 under operating systems.

Fixed

Fixed TUI and temporarily ignored SIGINT during subdialog execution via Ctrl+C.

Updated

Updated the list of browsers/bots.

Added

Added latest Android and macOS versions to the list of OSs.

Fixed

Fixed issue when trying to apply a regex on an invalid value (HTML report).

Fixed

Fixed issue with D3.js xScale.domain() going out of boundaries in certain cases.

Prevent

Prevent setting default static files when no static-file options are defined in config file.

Added

Added dual-stack support to the WebSocket server.

Added

Added Debian Bookworm to the official deb repo.

Added

Added Ubuntu Lunar to the official deb repo.

Fixed

Fixed compiler error on macOS 10.12.

Updated

Updated bootstrap to v3.4.

Updated

Updated FontAwesome with additional icons for upcoming major release.

Updated

Updated Japanese translation.

Updated

Updated OS display from Macintosh to macOS.

Updated

Updated to D3.js v7 (latest) including charts.js code.

Added

Added a color-coding scheme to HTTP status codes.

Added

Added '--external-assets' command line option to output external JS+CSS files. Great when used with Content Security Policy (CSP).

Ensure

Ensure there's a fallback for 'Windows' if it appears on the user-agent.

Ensure

Ensure we construct the WebSocket URL in a way that supports multiple use cases when used along '--ws-url' and '--port'.

Fixed

Fixed a segfault due to a null pointer exception on FreeBSD.

Fixed

Fixed build with '--disable-nls'.

Fixed

Fixed invalid read (heap-buffer-overflow) when parsing an XFF spec via JSON.

Fixed

Fixed segfault when parsing a specific XFF specifier.

Added

Added 'inlang' for easy localization (i18n) updates. https://inlang.com/editor/github.com/allinurl/goaccess

Added

Added nanosecond parsing option via the '%n' specifier. Great for parsing 'Traefik' JSON logs duration field.

Changed

Changed Docker workflow to build a docker image on different architectures {'arm64' & 'amd64'}.

Fixed

Fixed issue with '--unknowns-as-crawlers' where it did not process them as such.

Added

Added an option to classify unknown OS and browsers as crawlers using `--unknowns-as-crawlers`.

Added

Added highlighting to certain metrics on the HTML report for readability.

Added

Added a new panel that displays ASN data for GeoIP2 and legacy databases. Great for detecting malicious traffic and blocking accordingly.

Added

Added an ASN metric per IP/host.

Changed

Changed and prioritize user's browsers list over heuristics.

Ensure

Ensure `--geoip-database=<path>` can be used multiple times to support different databases.

Fixed

Fixed invalid read when loading the list of agents for an IP.

Fixed

Fixed issue where a file containing a NUL `\0` character would crash the program.

Updated

Updated Swedish i18n.

Updated

Updated Dockerfile build stage to use alpine:3.

Updated

Updated deb build to use the right libncursesw6 dependency.

Added

Added Korean translation (i18n).

Added

Added the ability to use filenames as virtualhosts using '--fname-as-vhost=<regex>'.

Enabled

Enabled crawlers/bots under the OSs panel instead of being shown as 'Unknown'.

Updated

Updated the format on the command-line help output.

Enabled

Enabled DNS thread when resolving a host and outputting real-time HTML. This helps avoid stalling the WS server on busy connections.

Fixed

Fixed issue where it would not properly parse an XFF if the '%h' specifier was already set.

Fixed

Fixed possible XSS issues when using '--html-custom-css' and '--html-custom-js' by allowing valid filenames.

Added

Added `Android 12` to the list of OSs.

Added

Added `macOS 12 Ventura` to the list of OSs.

Fixed

Fixed implicit declaration build issue due to `timegm(3)` on `BSDs` and `macOS`.

Fixed

Fixed issue where timezone conversion would be performed twice on a given date.

Added

Added a `--ping-interval=<secs>` in an attempt to keep the WebSocket connection opened.

Added

Added support for timezone conversion via `--datetime-format=<format>` and `--tz=<timezone>`.

Added

Added the ability to reconnect to the WebSocket server after 1 sec with exponential backoff (x20).

Fixed

Fixed issue where an invalid client connection would stall data out to clients via the WebSocket server.

Fixed

Fixed an issue where real-time data would be parsed multiple times under `Cygwin`.

Changed

Changed slightly how the XFF field is specified. See man page for details.

Ensure

Ensure city is displayed with the DBIP City Lite database.

Ensure

Ensure no 'cleaning up resources' message is displayed if `--no-progress` is passed.

Ensure

Ensure the maximum number of items per panel defaults to 1440 (24hrs) when passing `--date-spec=min`.

Fixed

Fixed issue when parsing a delimited XFF field followed by a host IP.

Fixed

Fixed issue where some data was buffered on the WebSocket server before it was sent to each client.

Fixed

Fixed issue where the WebSocket server would fail with POLLNVAL consuming 100% CPU.

Fixed

Fixed segfault when attempting to open an unresolved IP on mac/BSDs.

Updated

Updated Caddy's JSON format. This should address CADDY's v2.5.0 change.

Updated

Updated Chinese translation (i18n).

Updated

Updated GeoIP module so it defaults to native language name (i18n) or fall-back to English.

Updated

Updated Russian translation (i18n).

Updated

Updated Ukrainian translation (i18n).

Added

Added `--anonymize-level=<1|2|3>` option to specify IP anonymization level.

Added

Added minute specificity to the Visitors panel via `--date-spec=min`.

Added

Added the ability to toggle on/off panels on the HTML report.

Changed

Changed stderr to stdout on non-error output when exiting goaccess.

Added

Added mechanism to automatically parse additional bots.

Changed

Changed area chart interpolation to 'monotone'. This should avoid the issue where the interpolated curve has a bend into the negative space.

Changed

Changed build to use debugging symbols even for release builds.

Changed

Changed order on which we verify bots to be the first thing we check. This adds a slight improvement on parsing time.

Ensure

Ensure we initialize DNS resolver conditions and mutexes before they're used.

Fixed

Fixed possible buffer over-read for cases where a '\0' could be reached early when parsing a log line.

Fixed

Fixed possible data race on UI spinner thread.

Fixed

Fixed regression where a lot of robots were not detected by GoAccess.

Added

Added AWS ALB to the predefined logs format list --log-format=AWSALB.

Ensure

Ensure we lock our pipe/websocket writer before broadcasting message.

Ensure

Ensure we require a valid host token even when we're not validating the IP.

Ensure

Ensure we simply update the TUI once after tailing multiple files.

Ensure

Ensure we simply update the UI once after tailing multiple files.

Fixed

Fixed buffer overflow when checking if an HTTP code was a 404 on an empty status code.

Optimized

Optimized terminal and HTML UI output when tailing multiple files.

Updated

Updated DB PATH error message to be more descriptive.

Added

Added additional crawlers to the default list.

Added

Added Italian translation (i18n).

Added

Added 'macOS 12' to the list of OS.

Fixed

Fixed buffer overflow caused by an excessive number of invalid requests with multiple logs.

Fixed

Fixed visualization issue on the HTML report for panels with disabled chart.

Added

Added .avi to the list of static requests/extensions.

Changed

Changed label from 'Init. Proc. Time' to 'Log Parsing Time'.

Fixed

Fixed issue where lengthy static-file extension wouldn't account certain valid requests.

Fixed

Fixed possible buffer underflow when checking static-file extension.

Fixed

Fixed segfault when attempting to parse an invalid JSON log while using a JSON log format.

Fixed

Fixed segfault when ignoring a status code and processing a line > '4096' chars.

Changed

Changed official deb repo so it now builds '--with-getline' in order to support request lines longer than 4096.

Ensure

Ensure there's no tail delay if the log file hasn't changed.

Fixed

Fixed data race when writing to a self-pipe and attempting to stop the WS server.

Fixed

Fixed inability to close expanded panel when pressing 'q' on TUI.

Fixed

Fixed possible data race during parsing spinner label assignment.

Increased

Increased the maximum number of files to monitor from '512' to '3072'.

Added

Added a Docker container based isolated build environment (Debian).

Added

Added Dark Mode detection to the HTML report.

Added

Added the ability for the WebSocket server to bind to a Unix-domain socket.

Added

Added the ability to parse IPs enclosed within brackets (e.g., IPv6).

Changed

Changed categorization of requests containing 'CFNetwork' to 'iOS' when applicable.

Changed

Changed command line option from '--hide-referer' to '--hide-referrer'.

Changed

Changed command line option from '--ignore-referer' to '--ignore-referrer'.

Fixed

Fixed a potential division by zero.

Fixed

Fixed inability to parse IPv6 when using a 'CADDY' log format.

Fixed

Fixed issue where a 'BSD' OS could be displayed as Linux with certain user-agents.

Fixed

Fixed memory leak when a JSON value contained an empty string (e.g., JSON/CADDY format).

Fixed

Fixed possible buffer overflow on a WS packet coming from the browser.

Refactored

Refactored a substantial part of the storage codebase for upcoming filtering/search capabilities (issue #117).

Refactored

Refactored DB storage to minimize memory consumption up to '35%'.

Updated

Updated default 'AWS Elastic Load Balancing' log format.

Updated

Updated German translation.

Updated

Updated page size to 24 on the HTML report.

Updated

Updated UNIX OS categories.

Added

Added additional feed reader clients.

Added

Added additional browsers and bots to the main list.

Added

Added command line option '--unknowns-log' to log unknown browsers and OSs.

Added

Added 'Referer' to the pre-defined 'Caddy JSON' log format.

Added

Added support for real-time piping as non-root user.

Added

Added the ability to Handle case when IPv4 is encoded as IPv6 in GeoIP1/legacy.

Ensure

Ensure we capture linux (lowercase) when extracting an OS.

Fixed

Fixed a regression in parsing Google Cloud Storage or possibly other non-JSON formats.

Fixed

Fixed inability to parse escaped formats.

Fixed

Fixed issue when using '%s' with 'strptime(3)' under musl libc. This addresses mostly the Docker image.

Fixed

Fixed possible buffer over-read for certain log-format patterns.

Fixed

Fixed segfault when attempting to process a malformed JSON string.

Fixed

Fixed segfault when setting an empty log-format from the TUI dialog.

Fixed

Fixed sorting on hits and visitors when larger than INT_MAX.

Updated

Updated CloudFront pre-defined log-format to reflect the latest fields.

Updated

Updated 'Dockerfile' image to use 'alpine:3.13' instead of edge due to compatibility issue with the GNU coreutils.

Fixed

Fixed build issue due to initial declarations only allowed in C99 mode (e.g., CentOS7).

Added

Added 'Caddy' to the list of pre-defined log formats.

Added

Added command line option '--no-strict-status' to disable status validation.

Added

Added native support to parse JSON logs.

Added

Added the ability to process timestamps in milliseconds using '%*'.

Ensure

Ensure TUI/CSV/HTML reports are able to output 'uint64_t' data.

Ensure

Ensure we allow UI render if the rate at which data is being read is greater than '8192' req/s.

Ensure

Ensure we don't re-render Term/HTML output if no data was read/piped.

Fixed

Fixed build configure to work on NetBSD.

Fixed

Fixed issue where it would send data via socket each second when managed by systemd.

Fixed

Fixed issue where parser was unable to parse syslog date with padding.

Fixed

Fixed issue where some items under browsers.list were not tab separated.

Fixed

Fixed issue where the format parser was unable to properly parse logs delimited by a pipe.

Fixed

Fixed issue where T.X. Amount metrics were not shown when data was piped.

Fixed

Fixed issue where XFF parser could swallow an additional field.

Fixed

Fixed memory leak when using '%x' as date/time specifier.

Replaced

Replaced select(2) with poll(2) as it is more efficient and a lot faster than select(2).

Updated

Updated Swedish i18n.

Added

Added the ability to set how often goaccess will parse data and output to the HTML report via '--html-refresh=<secs>'.

Changed

Changed how TLS is parsed so the Cypher uses a separate specifier. It now uses '%K' for the TLS version and '%k' for the Cypher.

Fixed

Fixed issue where real-time output would double count a rotated log. This was due to the change of inode upon rotating the log.

Updated

Updated man page to reflect proper way of 'tail -f' a remote access log.

Added

Added the ability to show 'Encryption Settings' such as 'TLSv1.2' and Cipher Suites on its own panel.

Added

Added the ability to show 'MIME Types' such as 'application/javascript' on its own panel.

Changed

Changed Debian build to use mmdb instead of libgeoip (legacy).

Ensure

Ensure the HTML report defaults to widescreen if viewport is larger than '2560px'.

Fixed

Fixed inability to properly process multiple logs in real-time.

Fixed

Fixed issue where named PIPEs were not properly seed upon generating filename.

Fixed

Fixed issue where served time metrics were not shown when data was piped.

Removed

Removed unnecessary padding from SVG charts. Improves readability on mobile.

Added

Added additional browsers and bots to the main list.

Added

Added 'Android 11' to the list of OSs.

Added

Added 'macOS 11.0 Big Sur' to the list of OSs.

Added

Added 'average' to each panel overall metrics.

Added

Added '.dmg', '.xz', and '.zst' to the static list.

Added

Added extra check to ensure restoring from disk verifies the content of the log against previous runs.

Added

Added Russian translation (i18n).

Added

Added Ukrainian translation (i18n).

Added

Added support for HTTP status code '308'.

Added

Added the ability for 'get_home ()' to return NULL on error, instead of terminating the process. Great if using through systemd.

Added

Added the ability to read lowercase predefined log formats. For instance, '--log-format=COMBINED' or '--log-format=combined'.

Changed

Changed how FIFOs are created and avoid using predictable filenames under '/tmp'.

Changed

Changed '--ignore-referer' to use whole referrer instead of referring site.

Ensure

Ensure Cache Status can be parsed without sensitivity to case.

Ensure

Ensure restored data enforces '--keep-last' if used by truncating accordingly.

Fixed

Fixed a few memory leaks when restoring from disk.

Fixed

Fixed blank time distribution panel when using timestamps.

Fixed

Fixed build issue due to lack of 'mmap' on 'Win'/'Cygwin'/'MinGW'.

Fixed

Fixed crash in mouse enabled mode.

Fixed

Fixed double free on data restore.

Fixed

Fixed inability to keep processing a log when using '--keep-last'.

Fixed

Fixed inability to properly parse truncated logs.

Fixed

Fixed inability to properly count certain requests when restoring from disk.

Fixed

Fixed issue where it would not parse subsequent requests coming from stdin (tail).

Fixed

Fixed issue where log truncation could prevent accurate number counting.

Fixed

Fixed issue where parsed date range was not rendered with '--date-spec'.

Fixed

Fixed issue where parser would stop regardless of a valid '--num-test' value.

Fixed

Fixed issue where restoring from disk would increment 'MAX.TS'.

Fixed

Fixed possible incremental issue when log rotation occurs.

Fixed

Fixed possible XSS when getting real-time data into the HTML report.

Fixed

Fixed potential memory leak when failing to get root node.

Fixed

Fixed real-time hits count issue for certain scenarios.

Fixed

Fixed segfault in 'Docker' due to a bad allocation when generating FIFOs.

Fixed

Fixed 'Unknown' Operating Systems with 'W3C' format.

Removed

Removed unnecessary include from parser.c so it builds in macOS.

Updated

Updated each panel overall UI to be more streamlined.

Updated

Updated French translation.

Updated

Updated German translation.

Updated

Updated Spanish translation.

Updated

Updated sigsegv handler.

Added

Added a caching storage mechanism to improve parsing raw data and data rendering.

Added

Added a mechanism to avoid counting duplicate data when restoring persisted data from disk.

Added

Added additional option to the HTML report to set a maximum number of items per page to 3.

Added

Added a list of podcast-related user agents under '%sysconfdir%'.

Added

Added 'Android 10' to the list of Android codenames.

Added

Added a 'widescreen' layout to the HTML report (e.g., 4K TV/KPI Dashboard).

Added

Added 'Beaker', 'Brave', and 'Firefox Focus' to the list of browsers

Added

Added command line option --user-name=username to avoid running GoAccess as root when outputting a real-time report.

Added

Added 'DuckDuckGo' and 'MSNBot' browsers to the browsers.list.

Added

Added 'facebookexternalhit' to the default crawler list.

Added

Added German translation (DE).

Added

Added Kubernetes Nginx Ingress Log Format to the default config file.

Added

Added 'macOS Catalina' to the list of OSX codenames.

Added

Added minor CSS updates to HTML report.

Added

Added missing header '<sys/socket.h>' to fix FreeBSD build

Added

Added new 'Edg' token to the list of browsers.

Added

Added '--no-ip-validation' command line to disable client IP validation

Added

Added '--persist' and '--restore' options to persist to disk and restore a dump from disk.

Added

Added Portuguese translation (pt-BR)

Added

Added Swedish translation (SV)

Added

Added the ability to parse server cache status and a new panel to display those metrics.

Changed

Changed accumulated time to work by default on '--persist' and '--restore'.

Changed

Changed back how the hits and visitors percentage is calculated to be more intuitive.

Changed

Changed Geo Location panel display default to show only if database file is provided ('LIBMAXMINDDB').

Changed

Changed initial processing time from secs to HH:MM:SS in HTML output.

Changed

Changed '--max-items' for the static HTML report to allow no limit on output entries.

Changed

Changed required 'gettext' version to 0.19

Changed

Changed to ignore 'SIGPIPE' with 'SIG_IGN'

Changed

Changed version to 10.15 for 'macOS Catalina'.

Ensure

Ensure proper escaping on default AWSELB log format.

Ensure

Ensure valid requests counter is not affected on duplicate entries when restoring data.

Fixed

Fixed issue preventing Ctrl-C (SIGINT) for the curses interface to stop the program.

Fixed

Fixed issue where HTML report wouldn't update the tables when changing per page option.

Fixed

Fixed issue where it wouldn't find either the user's or global config file.

Fixed

Fixed issue where changing the number of items per page in the HTML report would not automatically refresh the tables.

Fixed

Fixed issue where last updated label was not updated in real-time.

Fixed

Fixed issue where overall date range wasn't showing the right start/end parse dates.

Fixed

Fixed issue where tailing a file could potentially re-parse part of the log.

Fixed

Fixed memory leak when fetching country/continent while using 'LIBMAXMINDDB'.

Fixed

Fixed several '-Wcast-qual' warnings.

Fixed

Fixed unwanted added characters to the HTML output.

Fixed

Fixed websocket issue returning a 400 due to request header size.

Increased

Increased 'MAX_LINE_CONF' so a JSON string can be properly parsed from the config file.

Removed

Removed deprecated option '--geoip-city-data' from config file.

Removed

Removed unnecessary dependency from snapcraft.yaml.

Removed

Removed Vagrantfile per #1410

Removed

Removed some old browsers from the default curated list.

Replaced

Replaced TokyoCabinet storage for a non-dependency in-memory persistent storage.

Updated

Updated Dockerfile.

Added

Added ability to store accumulated processing time into DB_GEN_STATS tcb file via '--accumulated-time' command line option.

Added

Added additional Apache status codes to the list.

Added

Added a few feed readers to the list.

Added

Added 'Android 8 Oreo' to the list of OSs.

Added

Added 'Android Pie 9' to the list of OSs.

Added

Added --anonymize-ip command line option to anonymize ip addresses.

Added

Added --browsers-file command line option to load a list of crawlers from a text file.

Added

Added byte unit (PiB) to C formatter and refactored code.

Added

Added byte unit (PiB) to JS formatter.

Added

Added Chinese translation (i18n).

Added

Added French translation (i18n).

Added

Added '%h' date specifier to the allowed date character specifiers.

Added

Added "HeadlessChrome" to the list of browsers.

Added

Added --hide-referer command line option to hide referrers from report.

Added

Added HTTP status code 429 (TOO MANY REQUESTS).

Added

Added IGNORE_LEVEL_PANEL and IGNORE_LEVEL_REQ definitions.

Added

Added Japanese translation (i18n).

Added

Added macOS 10.14 Mojave to the list of OSs.

Added

Added "Mastodon" user-agent to the list of crawlers/unix-like.

Added

Added new fontawesome icons and use angle arrows in HTML paging.

Added

Added new purple theme to HTML report and default to it.

Added

Added --no-parsing-spinner command line option to switch off parsing spinner.

Added

Added .ogv and ogg static file extension (ogg video, Ogg Vorbis audio).

Added

Added OS X version numbers when outputting with --real-os.

Added

Added parsing mechanism in an attempt capture more bots and to include unspecified bots/crawlers.

Added

Added --pidfile command line option to the default config file.

Added

Added Spanish translation (i18n).

Added

Added SSL support for Docker goaccess build.

Added

Added support to the WebSocket server for openssl-1.1*.

Added

Added the ability to show/hide a chart per panel in the HTML report.

Added

Added transparency to the navigation bar of the HTML report.

Added

Added "WhatsApp" user-agent to the list of crawlers.

Changed

Changed default db folder so it adds the process id (PID). --db-path is required now when using --load-from-disk.

Changed

Changed Dockerfile to build from the current source.

Changed

Changed 'hits' to be right-aligned on TUI.

Changed

Changed to use faster slide animations on HTML report.

Changed

Changed wording from 'Bandwidth' to the proper term 'Tx. Amount'.

Ensure

Ensure database filenames used by btree are less predictable.

Ensure

Ensure HTML templates, CSS and JS files are minified when outputting report.

Ensure

Ensure key phrases from Google are added even when https is used.

Ensure

Ensure live report updates data & charts if tab/document has focus.

Ensure

Ensure multiple 'Yandex' crawlers are properly parsed.

Ensure

Ensure Safari has priority over most crawlers except the ones that are known to have it.

Ensure

Ensure the request protocol on its own is properly parsed.

Ensure

Ensure the right number of tests are performed against the given log.

Ensure

Ensure user configuration is parsed first when available.

Ensure

Ensure wss:// is used when connecting via HTTPS.

Ensure

Ensure XFF parser takes into account escaped braces.

Fixed

Fixed a regression where fifo-in/out would fail with ENXIO.

Fixed

Fixed a regression where it would return EXIT_FAILURE on an empty log.

Fixed

Fixed a (ssh) pipeline problem with fgetline()/fgets() when there is a race for data on stdin.

Fixed

Fixed broken X-Forwarded-For (XFF) %~ specifier in certain parsing cases.

Fixed

Fixed conf.filenames duplication problem if logs are via pipe.

Fixed

Fixed float percent value on JSON/HTML output for locales using decimal comma.

Fixed

Fixed issue where it was not possible to establish a Web Socket connection when attempting to parse and extract HTTP method.

Fixed

Fixed issue where log formats with pipe delimiter were not properly parsed.

Fixed

Fixed memory leak after config file path has been set (housekeeping).

Fixed

Fixed memory leak when adding host to holder introduced in c052d1ea.

Fixed

Fixed possible memory leak when hiding specific referrers.

Fixed

Fixed several JS jshint warnings.

Fixed

Fixed sudo installs on TravisCI.

Fixed

Fixed UNDEFINED time range in HTML report when VISITORS panel was ignored.

Fixed

Fixed unnecessary closing span tags from template.

Fixed

Fixed use-after-free when two color items were found on color_list.

Added

Added a Dockerfile.

Added

Added Amazon S3 bucket name as a VirtualHost (server block).

Added

Added a replacement for GNU getline() to dynamically expand line buffer while maintaining real-time output.

Added

Added --daemonize command line option to run GoAccess as daemon.

Added

Added several improvements to the HTML report on small-screen devices.

Added

Added option to the HTML report to auto-hide tables on small-screen devices.

Added

Added --process-and-exit command line option to parse log and exit.

Added

Added several feed readers to the list of browsers.

Added

Added "-" single dash per convention to read from the standard input.

Added

Added support for MaxMind GeoIP2.

Added

Added the ability to read and follow from a pipe such as "tail -f access.log | goaccess -"

Added

Added the ability to specify multiple logs as input sources, e.g.: "goaccess access.log access.log.1" while maintaining real-time output.

Added

Added time unit (seconds) to the processed time label in the HTML/terminal output.

Added

Added visitors' percent column to the terminal dashboard.

Changed

Changed D3 charts to dim Y-axis on mouseover.

Changed

Changed D3 charts to reflect HTML column sort.

Changed

Changed D3 charts to render only if within the viewport. This improves the overall real-time HTML performance.

Changed

Changed HTML report tables to render only if within the viewport.

Changed

Changed percentage calculation to be based on the total within each panel.

Ensure

Ensure start/end dates are updated real-time in the HTML output.

Ensure

Ensure "window.location.hostname" is used as the default WS server host. In most cases, this should avoid the need for specifying "--ws-url=host". Simply using "--real-time-html" should suffice.

Fixed

Fixed issue on HTML report to avoid outputting scientific notation for all byte sizes.

Fixed

Fixed integer overflow when calculating bar graph length on terminal output.

Fixed

Fixed issue where global config file would override command line arguments.

Fixed

Fixed issue where it wouldn't allow loading from disk without specifying a file when executed from the cron.

Fixed

Fixed issue where parser couldn't read some X-Forwarded-For (XFF) formats. Note that this breaks compatibility with the original implementation of parsing XFF, but at the same time it gives much more flexibility on different formats.

Fixed

Fixed issue where specifying fifo-in/out wouldn't allow HTML real-time output.

Fixed

Fixed issue where the wrong number of parsed lines upon erroring out was displayed.

Fixed

Fixed issue where the WebSocket server prevented to establish a connection with a client due to invalid UTF-8 sequences.

Fixed

Fixed percent issue when calculating visitors field.

Updated

Updated the list of crawlers.

Added

Added data metric's "unique" count on each panel to the JSON/HTML outputs.

Changed

Changed D3 bar charts to use .rangeBands and avoid extra outer padding.

Fixed

Fixed mouseover offset position issue on D3 bar charts.

Fixed

Fixed possible heap overflow when an invalid status code was parsed and processed. This also ensures that only valid HTTP status codes are parsed >=100 or <= 599.

Fixed

Fixed sluggish D3 chart re-rendering by changing how x-axis labels are displayed in the HTML report.

Added

Added a new layout to the HTML report and additional settings and changes.

Added

Added --crawlers-only command line option to display crawlers/bots only.

Added

Added --fifo-in and --fifo-out command line options to set websocket FIFO reader/writer.

Added

Added --no-html-last-updated command line option.

Added

Added --num-tests command line option.

Added

Added --html-prefs command line option to to set default preferences for the HTML report.

Added

Added "Amazon S3" Log Format to the list of predefined options.

Added

Added "Android 7.1 Nougat" to the list of OSs.

Added

Added "Android Marshmallow 6.0.1" to the list of OSs.

Added

Added "Android Nougat 7.0" to the list of OSs.

Added

Added "Feed Wrangler" to the list of feeds.

Added

Added "Go-http-client" to the list of browsers.

Added

Added "MicroMessenger" (WeChat) to the list of browsers.

Added

Added "SemrushBot" to the list of crawlers.

Added

Added "Remote User" panel to capture HTTP authentication requests. Use %e within the log-format variable to enable this panel.

Added

Added tebibyte unit to the byte to string function converter.

Added

Added the ability to parse reverse proxy logs that have multiple IPs. This adds the ability to parse the "X-Forwarded-For" field in a reverse proxy setup.

Added

Added the ability to show which token didn't match log/date/time pattern. This also ensures that in the absence of data, its output is not treated as error but instead it produces an empty report.

Added

Added the ability to specify a WebSocket protocol (ws|wss) through --ws-url.

Added

Added the request query string to the W3C format.

Added

Added TLS/SSL support to the HTML real-time report.

Changed

Changed browser classification for Google Cloud Clients.

Changed

Changed how "Darwin" OS was reported to display AppName instead.

Changed

Changed default W3C log format to use the URL path instead of full request.

Changed

Changed HTML default number of items on each table to 7.

Changed

Changed request parser to allow empty query strings.

Changed

Changed default HTML output theme to darkBlue.

Ensure

Ensure every version of iOS is broken down under the OS panel.

Ensure

Ensure latest JSON data is fast-forwarded when connection is opened. GoAccess now sends the latest JSON data to the client as soon as the WebSocket connection is opened.

Ensure

Ensure localStorage is supported and enabled in the HTML report

Ensure

Ensure unknown countries/continents are listed.

Fixed

Fixed D3 chart width overflow issue on Edge.

Fixed

Fixed integer to string key conversion for unique visitors. This fixes the issue where resulting keys would collide with existing keys and thus not keeping the right visitors count on certain panels.

Fixed

Fixed memory leak when unable to URL decode %q specifier.

Fixed

Fixed memory leak when unable to URL decode %U specifier.

Fixed

Fixed month name abbreviation on app.js.

Fixed

Fixed percentage integer overflow with large numbers on 32bits platforms.

Fixed

Fixed percent calculation due to integer division rounding to zero.

Fixed

Fixed possible code injection when outputting an HTML report.

Fixed

Fixed segfault when using options -H or -M without an argument.

Removed

Removed timestamp from the HTML report title tag.

Added

Added minor changes to the HTML report stylesheet.

Added

Added the ability to specify the WebSocket port within --ws-url.

Added

Added the proper byte swap functions used by Sun Solaris.

Added

Added the proper default --http-method/protocol values on the config file.

Changed

Changed bar transition to scale delay dynamically to the length of the dataset.

Fixed

Fixed build issue on platforms lacking of open_memstream() by refactoring the JSON module to use its own memory buffer.

Fixed

Fixed issue where the server wouldn't send cached buffer to slow clients.

Fixed

Fixed OS X build check of ncursesw.

Implemented

Implemented a throttle mechanism for slow clients to avoid caching too much data on the server-side.

Removed

Removed flickering on D3 line and bar chart redraw.

Added

Added Android version number along with the codename when using --real-os, e.g., "Lollipop 5.1".

Added

Added some missing headers and function checks to configure.ac.

Fixed

Fixed a regression where it wouldn't allow abbreviated date and time formats such as %F or %T.

Fixed

Fixed build issues on systems running GLIBC older than 2.9, such as RHEL <= 5.

Fixed

Fixed issue where it wouldn't send the whole buffer to a socket causing the real-time-html WebSocket server to progressively consume a lot more memory.

Fixed

Fixed memory leak when using getline and follow mode enabled.

Fixed

Fixed some buffer initialization issues on read_line() and perform_tail_follow().

Fixed

Fixed uint types in sha1 files.

Added

Added --enable-panel=<PANEL> command line option to display the given module.

Added

Added --json-pretty-print command line option to output pretty json.

Added

Added --log-format=<format> command-line shortcuts for standard log formats.

Added

Added --origin command line option to match the origin WebSocket header.

Added

Added --output=<file.[html|csv|json]> as a shortcut to --output-format.

Added

Added a complete real-time functionality to the HTML output.

Added

Added an option to set the max number of items to show per panel.

Added

Added D3 Visualziations to the HTML dashboard.

Added

Added metadata metrics to the each of the panels (JSON output)

Added

Added option to specify time distribution specificity.

Added

Added the ability to download a JSON file from the HTML report.

Added

Added the ability to output multiple formats on a single log parse.

Added

Added the ability to set the date specificity in hours.

Added

Added the ability to sort all HTML tables on all panels.

Added

Added the ability to specify a custom CSS and JS file to the HTML report.

Added

Added user-agents to the JSON output per each host.

Added

Added "Vivaldi" to the list of browsers.

Bootstrapify

Bootstrapify the HTML dashboard.

Changed

Changed configure.ac to use LDFLAGS instead of CFLAGS where applicable.

Changed

Changed default terminal color scheme to 256 Monokai if terminal supports 256 colors.

Changed

Changed GoAccess license to The MIT License (MIT)

Changed

Changed the visitors panel to display its dates continuously instead of top.

Default

Default to 256 Monokai color scheme if terminal supports 256 colors.

Default

Default to display HTTP method/protocol (if applicable).

Display

Display the children's Max. T.S. as the parent's top Max. T.S.

Ensure

Ensure the parent's Avg. T.S. displays parent's Cum. T.S. over parent's Hits.

Fixed

Fixed color issue when switching from the color scheme dialog.

Fixed

Fixed cross platform build issue when ncurses is built with and without termlib=tinfo.

Fixed

Fixed curses header window issue where it wouldn't clear out on small window sizes.

Fixed

Fixed issue where tail mode wouldn't parse full lines using getline().

Fixed

Fixed minor background color issue when using ncurses 6.

Fixed

Fixed possible division by zero when calculating percentage.

Fixed

Fixed singly link list node removal.

Fixed

Fixed still reachable memory leak on GeoIP cleanup (geoip legacy >= 1.4.7).

Fixed

Fixed various Valgrind's still reachable memory leaks.

Removed

Removed -Wredundant-decls.

Added

Added a more complete list of static extensions to the config file.

Added

Added "Android 6.0 Marshmallow" to the list of OSs.

Added

Added --no-tab-scroll command line option to disable scroll through panels on TAB.

Added

Added the first and last log dates to the overall statistics panel.

Ensure

Ensure GoAccess links correctly against libtinfo.

Ensure

Ensure static content is case-insensitive verified.

Fixed

Fixed bandwidth overflow issue (numbers > 2GB on non-x86_64 arch).

Fixed

Fixed broken HTML layout when html-method/protocol is missing in config file.

Refactored

Refactored parsing and display of available modules/panels.

Added

Added "Squid native" log format to the config file.

Fixed

Fixed integer overflow when getting total bandwidth using the on-disk storage.

Fixed

Fixed issue where a timestamp was stored as date under the visitors panel.

Fixed

Fixed issue where config dialog fields were not cleared out on select.

Fixed

Fixed issue where "Virtual Hosts" menu item wasn't shown in the HTML sidebar.

Added

Added --dcf command line option to view the default config file path.

Added

Added --ignore-status the ability to ignore parsing status codes.

Added

Added "Darwin" to the list of OSs.

Fixed

Fixed segfault when appending data to a log (follow) without virtualhosts.

Added

Added major performance improvements to the default storage when parsing and storing data (~%44 less memory, ~37% faster).

Added

Added the ability to parse virtual hosts and a new panel to display metrics per virtual host.

Added

Added the ability to parse HTTP/2 requests.

Added

Added the ability to use GNU getline() to parse full line requests.

Added

Added the ability to output debug info if a log file is specified, even without --enable-debug.

Added

Added OS X "El Capitan".

Added

Added WebDav HTTP methods and HTTP status from RFC 2518 and RFC 3253.

Fixed

Fixed detection of some Googlebots.

Fixed

Fixed issue where time served metrics were not shown when loading persisted data.

Fixed

Fixed linker error on OSX: ld: library not found for -lrt.

Fixed

Fixed percentage on the HTML output when excluding IPs.

Removed

Removed GLib dependency and refactored storage functionality. By removing this dependency, GoAccess is able to store data in a more efficient manner, for instance, it avoids storing integer data as void* (generic typing), thus greatly improving memory consumption for integers.

Added

Added --all-static-files command line option to parse static files containing a query string.

Added

Added --invalid-requests command line option to log invalid requests to a file.

Added

Added additional overall metric - total valid requests.

Added

Added "%~" specifier to move forward through a log string until a non-space char is found.

Added

Added the ability to parse native Squid access.log format.

Fixed

Fixed a few issues in the configuration script.

Fixed

Fixed inability to parse color due to a missing POSIX extension. "ERR:Invalid bg/fg color pairs"

Added

Added --no-column-names command line option to disable column name metrics.

Added

Added a default color palette (Monokai) to the config file.

Added

Added AWS Elastic Load Balancing to the list of predefined log/date/time formats.

Added

Added CloudFlare status codes.

Added

Added column headers for every enabled metric on each panel.

Added

Added cumulative time served metric.

Added

Added "DragonFly" BSD to the list of OSs.

Added

Added maximum time served metric (slowest running requests).

Added

Added "Slackbot" to the list of crawlers/browsers.

Added

Added the ability to parse the query string specifier "%q" from a log file.

Added

Added the ability to process logs incrementally.

Added

Added the ability to set custom colors on the terminal output.

Disabled

Disabled REFERRERS by default.

Ensure

Ensure bandwidth metric is displayed only if %b specifier is parsed.

Fixed

Fixed issue where the --sort-panel option wouldn't sort certain panels.

Fixed

Fixed several compiler warnings.

Set

Set predefined static files when no config file is used.

Updated

Updated "Windows 10" user agent from 6.4 (wrong) to 10.0.(actual)

Added

Added ability to fully parse browsers that contain spaces within a token.

Added

Added multiple user agents to the list of browsers.

Added

Added the ability to handle time served in milliseconds as a decimal number `%L`.

Added

Added the ability to parse a timestamp in microseconds.

Added

Added the ability to parse Google Cloud Storage access logs.

Added

Added the ability to set a custom title and header in the HTML report.

Added

Added "%x" as timestamp log-format specifier.

Ensure

Ensure agents" hash table is destroyed upon exiting the program.

Ensure

Ensure "Game Systems" are processed correctly.

Ensure

Ensure visitors panel header is updated depending if crawlers are parsed or not.

Fixed

Fixed issue where the date value was set as time value in the config dialog.

Fixed

Fixed memory leak in the hits metrics when using the in-memory storage (GLib).

Added

Added --hl-header command line option to highlight active panel.

Added

Added "Applebot" to the list of web crawlers.

Added

Added "Microsoft Edge" to the list of browsers.

Added

Added additional Nginx-specific status codes.

Ensure

Ensure dump_struct is used only if using __GLIBC__.

Ensure

Ensure goaccess image has an alt attribute on the HTML output for valid HTML5.

Ensure

Ensure the config file path is displayed when something goes wrong (FATAL).

Ensure

Ensure there is a character indicator to see which panel is active.

Fixed

Fixed Cygwin compile issue attempting to use -rdynamic.

Fixed

Fixed issue where a single IP did not get excluded after an IP range.

Fixed

Fixed issue where requests showed up in the wrong view even when --no-query-string was used.

Fixed

Fixed issue where some browsers were not recognized or marked as "unknown".

Fixed

Fixed memory leak when excluding an IP range.

Fixed

Fixed overflows on sort comparison functions.

Fixed

Fixed segfault when using on-disk storage and loading persisted data with -a.

Removed

Removed keyphrases menu item from HTML output.

Split

Split iOS devices from Mac OS X.

Added

Added --geoip-database command line option for GeoIP Country/City IPv6.

Added

Added "Windows 10 (v6.4)" to the real windows user agents.

Added

Added ability to double decode an HTTP referer and agent.

Added

Added ability to sort views through the command line on initial load.

Added

Added additional data values to the backtrace report.

Added

Added additional graph to represent the visitors metric on the HTML output.

Added

Added AM_PROG_CC_C_O to configure.ac

Added

Added "Android Lollipop" to the list of operating systems.

Added

Added "average time served" metric to all panels.

Added

Added "bandwidth" metric to all panels.

Added

Added command line option to disable summary metrics on the CSV output.

Added

Added numeric formatting to the HTML output to improve readability.

Added

Added request method specifier to the default W3C log format.

Added

Added the ability to ignore parsing and displaying given panel(s).

Added

Added the ability to ignore referer sites from being counted. A good case scenario is to ignore own domains. i.e., owndomain.tld. This also allows ignoring hosts using wildcards. For instance, *.mydomain.tld or www.mydomain.* or www?.mydomain.tld

Added

Added time/hour distribution module. e.g., 00-23.

Added

Added "visitors" metrics to all panels.

Changed

Changed AC_PREREQ macro version so it builds on old versions of autoconf.

Changed

Changed GEOIP database load to GEOIP_MEMORY_CACHE for faster lookups.

Changed

Changed maximum number of choices to display per panel to 366 from 300.

Ensure

Ensure config file is read from home dir if unable to open it from %sysconfdir% path.

Fixed

Fixed array overflows when exceeding MAX_* limits on command line options.

Fixed

Fixed a SEGFAULT where sscanf could not handle special chars within the referer.

Fixed

Fixed character encoding on geolocation output (ISO-8859 to UTF8).

Fixed

Fixed issue on wild cards containing "?" at the end of the string.

Fixed

Fixed issue where a "Nothing valid to process" error was triggered when the number of invalid hits was equal to the number of valid hits.

Fixed

Fixed issue where outputting to a file left a zero-byte file in pwd.

Improved

Improved parsing of operating systems.

Refactored

Refactored log parser so it allows with ease the addition of new modules. This also attempts to decouple the core functionality from the rendering functions. It also gives the flexibility to add children metrics to root metrics for any module. e.g., Request A was visited by IP1, IP2, IP3, etc.

Restyled

Restyled HTML output.

Fixed

Fixed SEGFAULT when parsing a malformed request that doesn't have HTTP status.

Added

Added --444-as-404 command line option to handle nginx non-standard status code 444 as 404.

Added

Added --4xx-to-unique-count command line option to count client errors (4xx) to the unique visitors count. Now by default it omits client errors (4xx) from being added to the unique visitors count as they are probably not welcomed visitors. 4xx errors are always counted in panels other than visitors, OS & browsers.

Added

Added and updated operating systems, and browsers.

Added

Added excluded IP hits count to the general statistics panel on all reports.

Added

Added HTTP nonstandard code "444" to the status code list.

Fixed

Fixed compile error due to missing include <sys/types.h> for type off_t (gcc 4.1).

Fixed

Fixed issue when excluding IPv4/v6 ranges.

Removed

Removed request status field restriction. This allows parsing logs that contain only a valid date, IPv4/6 and host.

Fixed

Fixed SEGFAULT when parsing a CLF log format and using --ignore-crawlers.

Fixed

Fixed parsing conflict between some Opera browsers and Chrome.

Fixed

Fixed parsing of several feed readers that are Firefox/Safari-based.

Fixed

Fixed Steam detection.

Added

Added Huawei to the browser's list and removed it from the OS's list.

Added

Added --version command line option.

Added

Added --ignore-crawlers command line option to ignore crawlers.

Added

Added ability to parse dates containing whitespaces in between, e.g., "Jul 15 20:13:59" (syslog format).

Added

Added a variety of browsers, game systems, feed readers, and podcasts.

Added

Added missing up/down arrows to the help section.

Added

Added the ability to ignore multiple IPv4/v6 and IP ranges.

Added

Added the PATCH method according to RFC 5789.

Fixed

Fixed GeoLocation percent issue for the JSON, CSV and HTML outputs.

Fixed

Fixed memory leak when excluding one or multiple IPs.

Added

Added ability to add/remove static files by extension through the config file.

Added

Added ability to print backtrace on segmentation fault.

Escaped

Escaped JSON strings correctly according to [RFC4627].

Fixed

Fixed encoding issue when extracting keyphrases for some HTTP referrers.

Fixed

Fixed issue where HTML bar graphs were not shown due to numeric locale.

Fixed

Fixed issue with URIs containing "\r?\n" thus breaking the corresponding output.

Make

Make sure request string is URL decoded on all outputs.

Added

Added APT-HTTP to the list of browsers.

Added

Added data persistence and ability to load data from disk.

Added

Added IE11 to the list of browsers.

Added

Added IEMobile to the list of browsers.

Added

Added multiple command line options.

Added

Added Nagios check_http to the list of browsers.

Added

Added parsing progress metrics - total requests / requests per second.

Added

Added the ability to parse a GeoLiteCity.dat to get the city given an IPv4.

Changed

Changed the way the configuration file is parsed. This will parse all configuration options under ~/.goaccessrc or the specified config file and will feed getopt_long with the extracted key/value pairs. This also allows the ability to have comments on the config file which won't be overwritten.

Ensure

Ensure autoconf determines the location of ncurses headers.

Fixed

Fixed issue where geo_location_data was NULL.

Fixed

Fixed issue where GoAccess did not run without a tty allocated to it.

Fixed

Fixed potential memory leak on --log-file realpath().

Fixed

Fixed Solaris build errors.

Implemented

Implemented an on-memory hash database using Tokyo Cabinet. This implementation allows GoAccess not to rely on GLib's hash table if one is needed.

Implemented

Implemented large file support using an on-disk B+ Tree database. This implementation allows GoAccess not to hold everything in memory but instead it uses an on-disk B+ Tree database.

Trimmed

Trimmed leading and trailing whitespaces from keyphrases module.

Added

Added --no-color command line option to turn off color output.

Added

Added --real-os command line option to get real OS names, e.g., "Android, Windows, Mac".

Added

Added ability to log debug messages to a file.

Added

Added ability to parse tab-separated log format strings.

Added

Added ability to support terminals without colors.

Added

Added command line option to append HTTP method to request.

Added

Added command line option to append HTTP protocol to request.

Added

Added long options to command-line.

Added

Added missing "Win 9x 4.90" (Windows Me) user-agent.

Added

Added missing Windows RT user-agent.

Ensure

Ensure mouse click does not reset expanded module if it is the same.

Fixed

Fixed Amazon CloudFront tab-separated log format.

Fixed

Fixed "FreeBSD style" ncursesw built into system.

Fixed

Fixed HTML report issue where data cell would not wrap.

Fixed

Fixed issue when isatty() could not find a valid file descriptor.

Fixed

Fixed SymbianOS user-agent and retrieve its version.

Added

Added a command line option to ignore request query strings.

Added

Added additional compiler flags & fixed several warnings.

Added

Added additional static file extensions.

Added

Added country per IP to HOSTS module (HTML & JSON).

Added

Added DEBUG mode to Makefile & -O2 to default release.

Added

Added GEOLOCATION report to all outputs - includes continents/countries.

Added

Added IP resolver to HTML and JSON output.

Added

Added module numbers to each module header.

Added

Added the ability to output JSON and CSV.

Added

Added Windows NT 6.3 (Win 8.1) to the list.

Fixed

Fixed buffer overflow issue with realpath.

New

New HTML report - HTML5 + CSS styles.

Properly

Properly split request line into the three request modules.

Added

Added active module indication by name.

Added

Added additional crawlers to the list.

Added

Added custom configuration file option.

Added

Added human-readable string when unable to open log.

Added

Added missing include when compiling on OSX 10.6.

Added

Added optional mouse support to the main dashboard.

Added

Added the ability to select active module by number (keys).

Added

Added the rest of HTTP methods according to RFC2616.

Changed

Changed referring site sscanf format to process multiple URLs.

Changed

Changed the default color scheme to monochrome.

Fixed

Fixed issue where %T was not processing floating-point numbers.

Fixed

Fixed percentage issue for browsers and os modules.

Fixed

Fixed SIGSEGV when reading from stdin to stdout.

Improved

Improved performance when expanding a module.

Reduced

Reduced memory consumption by decreasing number of dns threads.

Removed

Removed ^UP/^DOWN due to a key mapping conflict.

Added

Added a bunch of minor fixes and changes.

Added

Added and updated list of browsers and operating systems.

Added

Added a predefined log format/date for the Amazon CloudFront (Download Distribution).

Added

Added parsing/processing indicators.

Added

Added the ability to independently sort each module.

Added

Added the ability to search across the whole dashboard with the option to use regular expressions.

Config

Config window now accepts [ENTER] to continue or F10.

Fixed

Fixed issue where Opera +15 was identified as Chrome.

Implemented

Implemented the ability to parse the time taken to serve the request, in microseconds and seconds.

Improved

Improved memory usage and better performance in general.

Moved

Moved away from the original pop-up UI to a new expandable dashboard allowing data to be processed in real-time.

Sanitized

Sanitized HTML output with html entities for special chars.

Updated

Updated the hosts module so it shows the reverse DNS as a sub node.

Added

Added ability to output a full stats report to a file.

Added

Added a key shortcut to scroll top/bottom.

Added

Added a new include sys/socket.h - BSD

Added

Added support for IPv6

Added

Added the ability to parse a custom format string.

Fixed

Fixed google cache key-phrases.

Fixed

Fixed issue on empty Google query strings.

Fixed

Fixed issue on Opera agents where version was not recognized correctly.

Fixed

Fixed other minor fixes and changes.

Added

Added UTF-8 support. Now it should handle properly wide-character/UTF-8. Run ./configure --enable-utf8

Fixed

Fixed a minor bug when adding monthly totals on visitors subwin.

Removed

Removed -lrt since GoAccess does not link to librt. (OS X doesn't include librt)

Added

Added more flexibility when resizing the terminal. Should work fine with the standard 80x24.

Added

Added the ability to pass a flag to ./configure so GeoIP can be enabled if needed.

Implemented

Implemented a pipeline from stdin, so the input doesn't have to be only a file.

Added

Added graphs to the unique_visitors subwin.

Implemented

Implemented bandwidth per day, and host.

Implemented

Implemented list of agents for specific hosts.

Rewrote

Rewrote hash tables iterative code to avoid the use of GHashTableIter, this way it works with all GLib > 2.0.0.

Various

Various bug fixes and code cleanups (mainly in the subwin modules).

Changed

Changed tarball's filename.

Fixed

Fixed a request size parsing issue. Due to malformed syntax on the HTTP protocol, bandwidth was reset to 0. Ex. "HEAD /" 400 20392

Fixed

Fixed a segfault when goaccess was executed without any options but with an additional unknown argument.

Fixed

Fixed an agent parsing issue. As a result, operating systems were not properly counted.

Added

Added a color scheme implementation

Added

Added a counter for total requests since initial parse was implemented

Added

Added a more detailed and comprehensive browser and os report

Added

Added bandwidth details for requested files

Added

Added percentage details on modules 2, 3, 4, 5, 10, 11

Code

Code cleanups

Fixed

Fixed a potential segmentation fault when resizing main window

Fixed

Fixed a segmentation fault on pop-up window search if haystack was null

Fixed

Fixed invalid entries when parsing status codes

Implemented

Implemented a real support for LFS - Handles files larger than 2 GiB on 32-bit systems

Implemented

Implemented support for "vhost_combined" log format

Changed

Changed position of data/graphs depending on # of hits

Added

Added a keyphrases report coming from Google search engine. This includes, raw, cache, and translation queries.

Fixed

Fixed a memory leak when invalid entries were parsed

Fixed

Fixed a potential buffer overflow.

Implemented

Implemented real-time statistics (RTS). Data will be appended as the log file grows. Equivalent to "tail -f" on Unix systems

Implemented

Implemented screen resize functionality

Simplified

Simplified creation of the "unique visitors" hash-key.

Simplified

Simplified the "process_unique_data" function

Various

Various small speed increases & code cleanup

Fixed

Fixed a segmentation fault when parsing logs with unusual request type. Ex. "GET HTTP/1.1 HTTP/1.1"

Added

Added an enhanced error handling

Added

Added an extra macro on configure.ac to check against GHashTableIter. ./configure might not check for glib 2.16 that introduced "GHashTableIter".

Added

Added Glibc LFS

Cleaned

Cleaned up code a little bit

Fixed

Fixed a segmentation fault when displaying the help text on x86_64.

Fixed

Fixed assignments in conditions. In case the assignment is actually intended put extra parenthesis around it. This will shut GCC (and others) up.

Fixed

Fixed casts associated with "g_hash_table_iter_next".

Fixed

Fixed comparison between signed and unsigned integer types.

Fixed

Fixed function declarations.

Fixed

Fixed includes.

Fixed

Fixed two format strings. (If the error was ever triggered, it'd most likely lead to a segfault)

Initial

Initial release 0.1