- Fix "IllegalArgumentException: character to be escaped is missing" when sharing logs containing windows file paths
- Filter usernames and session tokens in uploaded logs as defined by the instance filters
- Fix some requests hanging when their body is being read
- Trim beginning of logs before applying limits to avoid counting leading newlines and whitespace towards the limit
- The pattern constants in
Logare now deprecated and only serve as fallbacks when the filters endpoint is not available on the specified instance. Log#getContent(Limits)is now deprecated. The newgetContent(FilterList)method is internal and might change without notice.LogReader#readContents(Limits)is now deprecated. The newreadContents(FilterList)method is internal and might change without notice.
- Add
listFilesInDirectorymethod toMclogsClient. 1
- Api methods now complete exceptionally if the server returns an error response
instead of returning a response object with error details.
- Removed
ApiException#getResponseandJsonResponse#throwIfErrormethods. - Remove
JsonResponse - Remove the
successanderrorfields from response objects.
- Removed
- Some response classes from
response.insightshave been moved toresponse.entry. - Many classes have been marked as final or not-extendable.
LimitedReaderandUtilare now internalLogReaderhas been split into multiple classes in thereaderpackage.- Removed deprecated constants and constructor from the
Logclass. - Mclogs instances running v1 are no longer supported.
- You can now specify a source and other metadata when uploading logs. By default, this is filled with the project name
you can set with
MclogsClient#setProjectName(String) - You can delete logs after uploading them using
UploadLogResponse#delete()orMclogsClient#deleteLog(id, token)with the token from the upload response. - Uploading a log now returns many new fields
- These new fields, the raw content, the parsed log entries and insights can now be fetched with a single request.
- Uploaded logs are now automatically compressed with GZIP during transfer
- Remove exception that is never thrown from signature of
MclogsClient#analyseLog(Path) - Add annotations for nullability where missing
- Limits are now applied to all methods that upload logs before the upload happens
- ApiException now includes the HTTP status code
MclogsClient#uploadLog(Path)now throws an ExecutionException if reading the file fails instead of throwing an IOException immediately.
- Add endpoint for analysing a log without storing it
- Add endpoint for fetching storage limits
- Use instance limits for truncating logs passed by their path
- Do not read more log content than the limit from the input stream
- Allow more BungeeCord log file names
- Add Path based variants to listCrashReportsInDirectory and listLogsInDirectory
- Fix setting client in UploadLogResponse (Fix #9)
- fix accept header name
- Update dependencies
- Utilize
CompletableFutureto wrap around API calls - API calls are now async
- Moved visibility of all fields to
private, some are alsofinal - Utilizes Java 11s
HttpClient
- Update dependencies
- mark the client property of UploadLogResponse as transient
- This should fix an issue with deserialization on Java 17+
- Moved gs.mclo.java -> gs.mclo.api
- Replace static methods on MclogsAPI with Mclogs class
- You are now required to specify a user agent or project name and version
- To use a custom instance you now need to create an instance object with your urls
- Errors returned by the API are now thrown as exceptions
- Fetch log insights from the API
- Improved development ergonomics
Footnotes
-
This is the equivalent of
listLogsInDirectoryandlistCrashReportsInDirectorybut searches in the directory itself, not a subfolder. Before 6.0, this was available as a static method of theUtilclass ↩