My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement
I've spent some time recently building a tool that makes my life a bit easier.

Finishing up a simple Rails log filter. Tired of tracking down sessions for support requests and it takes too long even for support kids.

I've browsed plenty of Rails log analyzers that help me find performance bottlenecks and potential improvements. But what I really need is a faster way to filter my logs to trace user sessions for support purposes. Maybe it's just me, but I've got apps where users report problems that make no sense, where their data gets lost, and who can't tell me what they did. Add to that the fact that I've got the same app running on dozens of different sites, and you can see why performance analyzers aren't what I'm looking for to solve my problem.

Because of that, I need a solution that lets me filter down and search parameters to figure out what a particular user was doing on a certain date. Hence, Ties.

Why the name?

Railroad ties
Source

The logs rails are fastened to are called ties. There's already railties, "the glue that binds Action Pack and Active Record together to the complete web framework named Rails". There's also the non-North-American "railway sleeper," which is already taken for log analysis. Ties is a word that describes the rail/log aspect, isn't quite taken, and fits the clothing aspect since it's written using Shoes.

Ties screenshot

What can Ties do?
Enter the path to a Ruby on Rails production log file, click the "Load Log" button and it reads in the file. Then, choose from the years, months, and days of requests in that file. Tell Ties which controller, action, and URL you are interested in. Finally, decide if you only want to see the log entries which contain an exception, enter a regular expression to search the params, plus the output filename and click a button to filter the log entries you care to see.

Ties takes a many-megabyte Rails production log file and outputs only the entries you're interested in.

The Ties git repository can be found at the github project page. The Ties executable downloads for Windows, MacOS, and Linux are there as well.

What's missing in the initial release?
  • Keyboard Shortcuts: Shoes leaves it to the programmer to implement keyboard shortcuts, so while familiar actions like Copy (ctrl-C) and Paste (ctrl-V) are available via the mouse, I have yet to implement them on the keyboard.

  • Error Handling: It's minimal. If you enter a non-existent file, or non-Rails-production file, who knows what will happen?

  • Crazy web-of-a-graph: My intent is to build the data model such that you can search most items in approximately O(1) time. Right now, you drill down to the day in constantish time, and after that it becomes linear search.

  • Testing on all platforms and Rails versions: I proudly certify this version (0.1) WOMM.

    Works on My Machine
    Source

    That means I've only tested it on Mac OS 10.5.8 (Leopard), using straight log files from Rails 2.2 on Ruby 1.8.6 and 1.8.7.

    That being said, Shoes is supposed to work on Windows and Linux as well, and I've not noticed any major differences in the log files between Rails versions, so you might find it works great for you too. If not, I encourage you to let me know and I'll fix it up quick for you. (Please have a sample log file available if possible.)
Thoughts?

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!


Comments
Leave a comment

There are no comments for this entry yet.

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)
Website

Comment:

Subcribe to this comment thread
Remember my details
Google
Web CodeOdor.com

Me
Picture of me

Topics
.NET (19)
AI/Machine Learning (14)
Answers To 100 Interview Questions (10)
Bioinformatics (2)
Business (1)
C and C++ (6)
cfrails (22)
ColdFusion (78)
Customer Relations (15)
Databases (3)
DRY (18)
DSLs (11)
Future Tech (5)
Games (5)
Groovy/Grails (8)
Hardware (1)
IDEs (9)
Java (38)
JavaScript (4)
Linux (2)
Lisp (1)
Mac OS (4)
Management (15)
MediaServerX (1)
Miscellany (76)
OOAD (37)
Productivity (11)
Programming (168)
Programming Quotables (9)
Rails (31)
Ruby (67)
Save Your Job (58)
scriptaGulous (4)
Software Development Process (23)
TDD (41)
TDDing xorblog (6)
Tools (5)
Web Development (8)
Windows (1)
With (1)
YAGNI (10)

Resources
Agile Manifesto & Principles
Principles Of OOD
ColdFusion
CFUnit
Ruby
Ruby on Rails
JUnit



RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner