Here is log processing application. User can run it as jar or as docker image.
By POST http://localhost:8080/logs url this application recieve .log file with next format of data inside it:
LogLevel{INFO|WARN|ERROR} DateTime{"yyyy-MM-dd HH:mm:ss.SSS»} Message{line|multiple lines}
After this user will be able to search log in inmemory H2 database with help of API endpoint GET http://localhost:8080/logs and query params:
?logLevel - filters search result by log level
?dateFrom - shows result that are elder or equal to dateTo
?dateFrom - shows result that are younger or equal to dateTo
?text - shows result that contains specified text
User can combine queryparams. In this case user would receive respons that corresponds to all criteria of search
1. Update API for processing file in stream while it is uploading and provide batch updates. For example save every 10000 records from List to DB
2. Provide Spring Security for authorization
3. Create Aspect that will convert and parse dates of any kind of view and pass it to API method
4. For using in browser provide base html page for response in separate endpoint
Just clone application to local env and run command:
docker build -t velotix .
docker run -d -p 8080:8080 velotix
Docker would automatically install all dependencies, run mvn clean install test and run application