A Grammar Based Approach to Distributed Systems Fault Diagnosis Using Log Files