Ограничение размера в файле Logback.xml не работает - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь ограничить размер журнала в файле Locakback.xml до 2 МБ перед загрузкой файла на сервер, но, тем не менее, размер файла не ограничивается 2 МБ, а всегда дает фактический размер файла, из-за которого я исключение из памяти когда-нибудь. Поэтому мое требование уменьшить размер файла до 2 МБ перед загрузкой на сервер. Ниже мой код для файла Logback.xml и код для загрузки на сервер

Logback.xml

<configuration>
    <property name="LOG_DIR" value="/sdcard/logback" />

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/gatewaylog.txt</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>gatewaylog.%i.log.txt</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>2</maxIndex>
            <totalSizeCap>2MB</totalSizeCap>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>2MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="TRACE">
        <appender-ref ref="FILE" />
    </root>
</configuration>

Код для загрузки на сервер

File logbackFile = new File(Environment.getExternalStorageDirectory(), "logback/gatewaylog.txt");
            if (logbackFile.length() == 0) {
                view.hideLogsExportProgress();
                return;
            }

            RequestBody logBackRequestFile = RequestBody.create(MediaType.parse("text/plain"), logbackFile);
            MultipartBody.Part logBackMultipart = MultipartBody.Part.createFormData("file", logbackFile.getName(), logBackRequestFile);

            compositeDisposable.add(apiRepository.uploadLogFile(logBackMultipart, Constants.GATEWAY).observeOn(AndroidSchedulers.mainThread())
                    .subscribeOn(Schedulers.io())
                    .subscribe(status -> {
                        view.hideLogsExportProgress();
                        if (status != null) {
                            view.showError("Successfully logs uploaded to cloud");
                        } else {
                            view.showError("Failed to uploaded logs to cloud. Try again.");
                        }
                    }, throwable -> {
                        view.hideLogsExportProgress();
                        view.showError("Server not reachable");
                        throwable.printStackTrace();
                    }));
...