2014-04-21 2 views
0

Ok! 그래서 내 서버 (FTB, Monster, 1.6.4) 용 콘솔 필터 플러그인을 개발 중입니다. 필자가 설정 한 콘솔 로그를 차단하는 데는 상당히 성공적이었습니다. 그러나 몇 가지 로그에 문제가 있습니다. 와콘솔 필터 플러그인

21.04 12:43:02 [Server] Startup [2.0.2] Recieved client info from DirtyRedz 
21.04 12:43:00 [Server] INFO [ConsoleFilter] Message was blocked: Sending serverside check to: DirtyRedz 
21.04 12:43:00 [Server] INFO [ConsoleFilter] Checking message: Sending serverside check to: DirtyRedz 
21.04 12:43:00 [Server] INFO [ConsoleFilter] Message was blocked: Loading Player: DirtyRedz 
21.04 12:43:00 [Server] INFO [ConsoleFilter] Checking message: Loading Player: DirtyRedz 
21.04 12:43:00 [Server] INFO Sending config data to DirtyRedz 
21.04 12:43:00 [Multicraft] DirtyRedz ran command Message of the Day 
21.04 12:43:00 [ConsoleFilter] Checking message: DirtyRedz ran command Message of the Day 
21.04 12:43:00 [Connect] User DirtyRedz, IP 11.1.1.111 
21.04 12:43:00 [Connect] User [ConsoleFilter] Checking message: DirtyRedz, IP 11.1.1.111 

로그 "[ConsoleFilter] 확인 메시지 :"메신저 테스트를 위해 사용하는, 어떤이 메시지가 메신저를 허용 becuase 후 여전히 실행 은 여기 내 콘솔에서 섹션입니다. 아래의 로그에만 문제가 있습니다 :

1. [Multicraft] DirtyRedz 명령이 오늘 로그 메시지를 통해 실행 중이며, 코드가 승인되기 전에 승인을 받았습니다. 로그를 확인하고 중지하십시오. 이 로그에 대해 궁금한 점이 있다면 getMessage() == null 인 경우 테스트하면 true를 전달하지만 record.getMessage()로 호출해도 계속 표시 될 수 있습니다.

  1. DirtyRedz &에 구성 데이터 전송 [서버] 정보 [서버] 시작 [2.0.2] DirtyRedz에서 받았다 클라이언트 정보, 심지어 때문에 내가 그들을 막을 수있는 기회를 해달라고, 내 로거를 통해 처리되지 않습니다.

여기에 관련이 내 코드 청크입니다 :

@Override 
public void onEnable() { 
getLogger().info("[ConsoleFilter] onEnable has been invoked!");//Bukkit has initialized ConsoleFilter 

fillFromConfig(); 
Bukkit.getLogger().setFilter(new Filter() { 

@Override 
public boolean isLoggable(LogRecord record) { 
getLogger().info("[ConsoleFilter] Checking message: " + record.getMessage()); 
Set<String> keyset=nodesHashMap.keySet(); 
for(String i:keyset){ 
String str = i; 
if(consoleFiltering && !nodesHashMap.get(i).getDelete()){ 
if(nodesHashMap.get(i).getList() == "Contains"){ 
if(record.getMessage().toLowerCase().contains(str.toLowerCase())){ 
Date time = Calendar.getInstance().getTime(); 
logToFile(time + " | " + record.getLevel() + 
" | " +record.getMessage(),nodesHashMap.get(i).getFile(),"Logs"); 
getLogger().info("[ConsoleFilter] Message was blocked: " + record.getMessage()); 
return false; 
} 
}else if(nodesHashMap.get(i).getList() == "Ends_With"){ 
if(record.getMessage().toLowerCase().endsWith(str.toLowerCase())){ 
Date time = Calendar.getInstance().getTime(); 
logToFile(time + " | " + record.getLevel() + 
" | " +record.getMessage(),nodesHashMap.get(i).getFile(),"Logs"); 
getLogger().info("[ConsoleFilter] Message was blocked: " + record.getMessage()); 
return false; 
} 
}else if(nodesHashMap.get(i).getList() == "Equals"){ 
if(record.getMessage().toLowerCase().equals(str.toLowerCase())){ 
Date time = Calendar.getInstance().getTime(); 
logToFile(time + " | " + record.getLevel() + 
" | " +record.getMessage(),nodesHashMap.get(i).getFile(),"Logs"); 
getLogger().info("[ConsoleFilter] Message was blocked: " + record.getMessage()); 
return false; 
} 
} 
} 
} 
return true; 
} 
}); 

답변

0

이 multicraft 나던 지원 로그 필터링 API를 따라서 상관없이 로그에 케이스를 기록되지 않습니다 것 becuase이다.