Update log4j2.xml, LogServiceImpl.java, and 4 more files...
This commit is contained in:
parent
b9fbc22c11
commit
351979fe0b
38
log4j2.xml
Normal file
38
log4j2.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- log4j2.xml - Example log4j configuration file
|
||||
Place this file in the same directory as your server.jar, edit
|
||||
to taste, and add -Dlog4j.configurationFile=log4j2.xml to your
|
||||
server startup flags.
|
||||
More log4j example configs can be found at
|
||||
<http://logging.apache.org/log4j/2.x/manual/appenders.html>.
|
||||
-->
|
||||
|
||||
<Configuration status="trace" shutdownHook="disable">
|
||||
<Appenders>
|
||||
|
||||
<!-- DEFAULT APPENDERS -->
|
||||
|
||||
<!-- console logging - logs to stdout -->
|
||||
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
|
||||
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/>
|
||||
<PatternLayout disableAnsi="false" pattern="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} %style{%processId}{magenta} [%15.15t] %style{%-20.20c{1}}{cyan} : %m%n%ex"/>
|
||||
</Console>
|
||||
<!-- console logging - logs to stderr -->
|
||||
<Console name="ConsoleAppenderErr" target="SYSTEM_ERR" follow="true">
|
||||
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
|
||||
<PatternLayout disableAnsi="false" pattern="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} %style{%processId}{magenta} [%15.15t] %style{%-20.20c{1}}{cyan} : %m%n%ex"/>
|
||||
</Console>
|
||||
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="com.hazelcast" level="INFO" />
|
||||
<Root level="DEBUG">
|
||||
<filters>
|
||||
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY"
|
||||
onMismatch="NEUTRAL" />
|
||||
</filters>
|
||||
<AppenderRef ref="ConsoleAppender"/>
|
||||
<AppenderRef ref="ConsoleAppenderErr"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
@ -21,7 +21,7 @@ public class LogServiceImpl implements LogService {
|
||||
|
||||
@Override
|
||||
public void append(Level level, String message) {
|
||||
logs.onNext(new LogEntry(System.currentTimeMillis(), level, message));
|
||||
logs.onNext(new LogEntry(System.currentTimeMillis(), level, message.length() > 512 ? message.substring(0, 512) : message));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,7 +35,7 @@ public class TransferClient {
|
||||
this.client = client;
|
||||
|
||||
this.client.getIncomingUpdates()
|
||||
.subscribeOn(Schedulers.boundedElastic())
|
||||
.subscribeOn(Schedulers.newParallel("bot_updates"))
|
||||
.flatMap(this::onUpdate)
|
||||
.subscribe();
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ public class TransferServiceImpl implements TransferService {
|
||||
})
|
||||
.build())
|
||||
.then(Mono.defer(() -> {
|
||||
var clientStateFlux = client.getState().publish().autoConnect(2);
|
||||
var clientStateFlux = client.getState().skip(1).publish().autoConnect(2);
|
||||
|
||||
clientStateFlux
|
||||
.filter(state -> state.getConstructor() == AuthorizationStateClosing.CONSTRUCTOR
|
||||
@ -140,12 +140,14 @@ public class TransferServiceImpl implements TransferService {
|
||||
.materialize()
|
||||
.flatMap(signal -> onUserbotClosed.get().thenReturn(signal))
|
||||
.dematerialize()
|
||||
.subscribe(state -> System.out.println("State: " + state));
|
||||
.subscribe(state -> System.out.println("Userbot closed with state: " + state));
|
||||
|
||||
clientStateFlux.subscribe(state -> System.out.println("state: " + state));
|
||||
|
||||
client
|
||||
.getIncomingUpdates()
|
||||
.flatMap(this::onClientUpdate)
|
||||
.subscribe(u -> System.out.println(u), e -> System.err.println(e));
|
||||
.flatMap(update -> onClientUpdate(update))
|
||||
.subscribe(_v -> {}, e -> System.err.println(e));
|
||||
|
||||
return clientStateFlux
|
||||
.filter(state -> state.getConstructor() == AuthorizationStateClosing.CONSTRUCTOR
|
||||
|
@ -15,14 +15,13 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.event.Level;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Schedulers;
|
||||
|
||||
public class TransferUtils {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(TransferUtils.class);
|
||||
|
||||
public static int chatIdToChatEntityId(long id) {
|
||||
if (id <= -1000000000000L) {
|
||||
return (int) (Math.abs(id) - 1000000000000L);
|
||||
@ -49,6 +48,7 @@ public class TransferUtils {
|
||||
|
||||
|
||||
private static class ChatIdAndOrderOffsets {
|
||||
|
||||
private final long chatIdOffset;
|
||||
private final long orderOffset;
|
||||
|
||||
@ -98,7 +98,7 @@ public class TransferUtils {
|
||||
* @return flux of home chats. They can repeat themselves
|
||||
*/
|
||||
public static Flux<Chat> getAllHomeChats(TransferClient client) {
|
||||
logger.debug("Getting the full chat list");
|
||||
App.getLogService().append(Level.DEBUG, "Getting the full chat list");
|
||||
|
||||
var singleScheduler = Schedulers.newSingle("getallchats");
|
||||
|
||||
@ -106,20 +106,27 @@ public class TransferUtils {
|
||||
.deferWithContext((context) -> {
|
||||
var offsets = Objects.requireNonNull(context.<AtomicReference<ChatIdAndOrderOffsets>>get("offsets"));
|
||||
var offsetsValue = offsets.get();
|
||||
return client.<Chats>send(new GetChats(new ChatListMain(),
|
||||
offsetsValue.getOrderOffset(),
|
||||
offsetsValue.getChatIdOffset(),
|
||||
100))
|
||||
App.getLogService().append(Level.TRACE, "Requesting GetChats");
|
||||
return client.<Chats>send(new GetChats(new ChatListMain(),
|
||||
offsetsValue.getOrderOffset(),
|
||||
offsetsValue.getChatIdOffset(),
|
||||
100
|
||||
))
|
||||
.flatMap(MonoUtils::orElseThrow)
|
||||
.publishOn(singleScheduler)
|
||||
.flatMapMany(chats -> Flux.fromStream(Arrays.stream(chats.chatIds).boxed()))
|
||||
.flatMap(chatId -> {
|
||||
App.getLogService().append(Level.TRACE, "Received ChatId: " + chatId);
|
||||
return client.<Chat>send(new GetChat(chatId))
|
||||
.publishOn(singleScheduler)
|
||||
.flatMap(MonoUtils::orElseThrow);
|
||||
})
|
||||
.doOnNext(chat -> {
|
||||
App.getLogService().append(Level.TRACE, "Received Chat: " + chat.toString().replace('\n', ' ').replace(" ", "").replace("\t", ""));
|
||||
})
|
||||
.collectList()
|
||||
.doOnNext(chats -> {
|
||||
App.getLogService().append(Level.TRACE, "Received Chats: " + chats.toString().replace('\n', ' ').replace(" ", "").replace("\t", ""));
|
||||
if (!chats.isEmpty()) {
|
||||
var lastChat = chats.get(chats.size() - 1);
|
||||
getMainChatListPosition(lastChat.positions).ifPresentOrElse(lastChatPosition -> {
|
||||
@ -136,7 +143,10 @@ public class TransferUtils {
|
||||
})
|
||||
.repeatWhen(nFlux -> nFlux.takeWhile(n -> n > 0))
|
||||
.flatMap(Flux::fromIterable)
|
||||
.subscriberContext(ctx -> ctx.put("offsets", new AtomicReference<>(new ChatIdAndOrderOffsets(0L, 9223372036854775807L))));
|
||||
.subscriberContext(ctx -> ctx.put("offsets",
|
||||
new AtomicReference<>(new ChatIdAndOrderOffsets(0L, 9223372036854775807L))
|
||||
))
|
||||
.doOnTerminate(() -> App.getLogService().append(Level.DEBUG, "Home chats retrieved"));
|
||||
}
|
||||
|
||||
private static Optional<ChatPosition> getMainChatListPosition(ChatPosition[] positions) {
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit bc40e2b9e60857e3b84850d11ba399a2afc51073
|
||||
Subproject commit a7223c4d834c91829b2eace051c0ab5526720aed
|
Loading…
Reference in New Issue
Block a user