Course: CMPE 202 - Software Systems Engineering
Student: Lam Nguyen
SJSU ID: 018229432
A command-line application for parsing and aggregating heterogeneous log files containing APM (Application Performance Metrics), Application, and Request logs.
├── src/main/java/edu/sjsu/cmpe202/logparser/
│ ├── model/ # Domain models (LogEntry, APMLog, etc.)
│ ├── parser/ # Log parsing strategies
│ ├── aggregator/ # Log aggregation logic
│ ├── writer/ # JSON output writers
│ └── util/ # Utility classes
├── src/test/java/ # JUnit tests
├── DESIGN_DOCUMENT_PART1.md # Part I: Design patterns & class diagram
├── sample_input.txt # Sample log file
└── pom.xml # Maven configuration
- Java 11+ (required)
- Maven 3.6+ (optional - only needed to build from source)
A pre-built JAR is included in the repository. Just run:
java -jar log-parser.jar --file sample_input.txtmvn clean package
java -jar target/log-parser-1.0-SNAPSHOT.jar --file <input-file.txt>java -jar log-parser.jar --file sample_input.txtapm.json- APM log aggregations (min, median, avg, max per metric)application.json- Application log counts by severity levelrequest.json- Request log percentiles and status codes per route
mvn testTest Results: 57 tests, 100% pass rate
- Strategy Pattern - Interchangeable parsing algorithms
- Chain of Responsibility - Route logs to correct parser
- Template Method - Common aggregation interface
- Factory Pattern - Create log entry objects
See DESIGN_DOCUMENT_PART1.md for detailed design analysis.
