feat: implement in-memory log buffer, add ICP-Brasil seal assets, and improve SDK parameter handling

This commit is contained in:
Claudecio Martins
2026-10-11 20:58:49 -03:00
parent 2a50704a7f
commit 5f4a212786
14 changed files with 399 additions and 213 deletions
@@ -0,0 +1,41 @@
package br.com.cybercore.signer.app.log;
import br.com.cybercore.signer.core.log.AppLogBuffer;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/**
* Appender do Logback que intercepta eventos reais de log e os encaminha para o buffer em memória.
*/
public class InMemoryLogAppender extends AppenderBase<ILoggingEvent> {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
@Override
protected void append(ILoggingEvent eventObject) {
if (eventObject == null) return;
LocalDateTime time = LocalDateTime.ofInstant(
Instant.ofEpochMilli(eventObject.getTimeStamp()),
ZoneId.systemDefault()
);
String timestamp = time.format(FORMATTER);
String level = eventObject.getLevel().toString();
String loggerName = eventObject.getLoggerName();
if (loggerName != null && loggerName.length() > 30) {
int lastDot = loggerName.lastIndexOf('.');
if (lastDot > 0) {
loggerName = loggerName.substring(lastDot + 1);
}
}
String message = eventObject.getFormattedMessage();
String line = String.format("[%s] [%s] %s - %s", timestamp, level, loggerName, message);
AppLogBuffer.append(line);
}
}
@@ -6,8 +6,11 @@
</encoder>
</appender>
<appender name="MEMORY" class="br.com.cybercore.signer.app.log.InMemoryLogAppender" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="MEMORY" />
</root>
<logger name="br.com.cybercore.signer" level="DEBUG" />