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
  • Hi, teams,

    I am trying to get a day's worth of rdbms-audit logs.
    However, I have tried the following expression, but could not get the logs that have been evacuated.
    Any help would be appreciated. Thanks in advance.

    Log format: rdbms-audit.log.yyyy-mm-dd.*

    readlogpaging( 
     logPath: "audit\rdbms\rdbms-audit.log." & tostring(year(today())) & "-" & substitute(    padleft(tostring(month(today())), 2),    " ",    "0"  ) & "-" & substitute(    padleft(tostring(day(today())), 2) & "." & tostring(pv!LogCounter),    " ",    "0"  ),
     startIndex: 1, 
     batchSize: - 1
    ).rows

  • We have an older version of this plugin and I see that another parameter has been added to the latest version of the plugin to address this issue. I'll give that a try.

  • We are trying to consume the rdbms-audit logs. We are using the function taillogpaging(). If you pass a timestampStop to this function, it does not return any data. The timestamp format in the rdbms-audit log is yyyymmdd hh:mm:ss. 

    We also use the taillogpaging() while consuming the tomcat-access logs and that log has a timestamp format of yyyy-mm-dd hh:mm:ss. This seems to work. 

    Any suggestions?

  • Hi Team,

    I am trying to get sites usage data from logs by using readcsvlog function but just getting headers and null for rows. Total count is coming as -1. Tried using readcsvlogpaging and readcsvlogpagingwithheaders functions too but that also didn't seem to work. 

    Not sure if there is anything to do with size of file as that log file is more than 6 mb. I am able to get data for other log files. Currently working on 24.2 version.

    PFA code snippet and output.

    Any help would be appreciated. Thanks in advance.

    Regards,

    Trunal Jain

  • Hi Team,

    Would it be possible to get last logged in (3 months ago ) user details by using this plugin?

    Thanks,

    Sai.

  • Hi 

    I've been using the Plug In function without issue - I find you have to specify all input values on the function. even if they are null. Some functions within the plug in seem to expect all inputs named even if they are null. There may also be some error output listed in STDOUT that can help determine what the issue is. 

    I've been using the readcsvlogpaging function without issue - if you try setting the other inputs to {} or NULL that may work. 

    fn!readcsvlogpaging(
    csvPath: "login-audit.csv",
    startIndex: ri!pagingInfo.startIndex,
    batchSize: ri!pagingInfo.batchSize,
    filterColumName: "Timestamp",
    filterOperator: "startsWith",
    filterValue: local!convertedToday,
    timestampColumnName: "Timestamp",
    timestampStart: now() - intervalds(0,ri!pastMinutes,0),
    timestampEnd: now()

    ),

    In my use case I'm only looking for Todays log in records and within a specified time frame - hence the use of timestamp filtering. 

    Hope this helps. 

  • Hi   , I tried that as well but no response yet.

    thanks

  • v2.1.3 Release Notes
    • The 2.1.3 version allows specifying the date format when tailing a log using taillog and taillogpaging
  • Hi Shubham,

    Have you tried posting this as a discussion post in the plug-ins category? Plug-Ins 


    If that doesn't help, you can report an issue from the right-hand side of the page on this page.

  • I am using this function first time , we haven’t used this function before. Yes it is the problem only with login audit