Log Reader

Overview

Plug-in Notes:

  • Allows only System Administrators or members of the Designers group to access log data.  
  • Does not load files outside the logs directory or files that do not end in .log.* or .csv.*.
  • On multi-application-server environments, logs will only be shown from a single application server.
  • Custom headers can be specified as an optional parameter. This is meant to be used for .csv files that don't contain a header.

Key Features & Functionality

The Appian Log Reader Plug-in contains functionality to:

  • Read files in the Appian /log folder (.csv or .log) and return them as structured data
  • Aggregate data from a .csv file
  • Serve as the source for a service-backed record for viewing logs
  • The Log Reader application provided with the download demonstrates a service-backed record for viewing logs, as well as reports on specific log files. Administrators can view reports on system health over time, including design best practices, system load, and database performance. The application also contains a process that checks details from system.csv and alerts administrators if memory or CPU utilization exceeds a threshold.
  • Tail a log file with tailcsv and taillog. Note that tail is an expensive operation which is optimized for reading the last few lines of a large log file. It's not advisable to tail the entire log file from the end to the beginning. However, tail will perform much better than the other log functions when reading the last few lines from a very large log file. Use the batch size and timestamp filters to limit the number of lines read by the tailcsv and taillog functions.
  • Takes a line of text in CSV format and returns a text array
Anonymous
Parents
  • I'm trying to read the contents of "design_errors.csv" (which appears to be a normally-formatted CSV file).  I've tried readCSVLog(), readCSVLogPaging(), and readCSVLogPagingWithHeaders(); all of them fail to pull back any contents.  They do receive the header column names from the CSV file, but return no rows of data.  Any suggestions?

  • I've added a function that reads the CSV in reverse. Please see if this works for your use case. Note that reading a CSV in reverse is less efficient if you are going to read the whole file than it would be if you read it normally. However, reading the CSV in reverse is more efficient for large files if you are only reading a few lines at a time.

  • Ok great! I'll look for the update from the community

  • - that sounds like a good feature.  I won't be able to test it in our case because I had appian support archive the older design_errors.csv file in all our environments, which proved out my theory that it was breaking because the number of columns changed over time.  But that means I no longer have a version to test this against.  However anyone who has an instance that's been around since the '19 versions or so, should be able to reproduce the issue and test if the new functionality works.

Comment
  • - that sounds like a good feature.  I won't be able to test it in our case because I had appian support archive the older design_errors.csv file in all our environments, which proved out my theory that it was breaking because the number of columns changed over time.  But that means I no longer have a version to test this against.  However anyone who has an instance that's been around since the '19 versions or so, should be able to reproduce the issue and test if the new functionality works.

Children