[英]Why does it print the same log twice?
我必須通過格式化程序執行 an.upperCase(),但我不明白為什么它打印相同的消息但沒有上層,因為我已經確定它只使用它。
我正在使用 java 實用程序測試。
public DatabaseAccessProxy(String pass, DatabaseAccess database) throws SecurityException, IOException {
this.logged = false;
this.pass = pass;
this.database = database;
manejador = new ConsoleHandler();
fileManejador = new FileHandler("C:/Users/ignac/OneDrive/Escritorio/OO2/Practica 6/logs");
manejador.setFormatter(new ShoutingSimpleFomatter());
fileManejador.setFormatter(new JSONFormater());
Logger.getLogger("app.main").addHandler(manejador);
}
public class ShoutingSimpleFomatter extends SimpleFormatter {
@Override
public String format(LogRecord record) {
return super.format(record).toUpperCase();
}
}
Output:
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY INSERTNEWROW
ADVERTENCIA: ACCESO VALIDO PARA LA INSERCION!
may. 25, 2022 8:06:42 P. M. ar.edu.unlp.info.oo2.accesobd.DatabaseAccessProxy insertNewRow
ADVERTENCIA: Acceso valido para la insercion!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY GETSEARCHRESULTS
INFORMACIÓN: ACCESO VALIDO PARA LA BUSQUEDA!
may. 25, 2022 8:06:42 P. M. ar.edu.unlp.info.oo2.accesobd.DatabaseAccessProxy getSearchResults
INFORMACIÓN: Acceso valido para la busqueda!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY GETSEARCHRESULTS
INFORMACIÓN: ACCESO VALIDO PARA LA BUSQUEDA!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY GETSEARCHRESULTS
INFORMACIÓN: ACCESO VALIDO PARA LA BUSQUEDA!
may. 25, 2022 8:06:42 P. M. ar.edu.unlp.info.oo2.accesobd.DatabaseAccessProxy getSearchResults
INFORMACIÓN: Acceso valido para la busqueda!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY GETSEARCHRESULTS
INFORMACIÓN: ACCESO VALIDO PARA LA BUSQUEDA!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY GETSEARCHRESULTS
INFORMACIÓN: ACCESO VALIDO PARA LA BUSQUEDA!
may. 25, 2022 8:06:42 P. M. ar.edu.unlp.info.oo2.accesobd.DatabaseAccessProxy getSearchResults
INFORMACIÓN: Acceso valido para la busqueda!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY LOGIN
GRAVE: ACCESO INVALIDO A LA BASE DE DATOS!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY LOGIN
GRAVE: ACCESO INVALIDO A LA BASE DE DATOS!
MAY. 25, 2022 8:06:42 P. M. AR.EDU.UNLP.INFO.OO2.ACCESOBD.DATABASEACCESSPROXY LOGIN
GRAVE: ACCESO INVALIDO A LA BASE DE DATOS!
may. 25, 2022 8:06:42 P. M. ar.edu.unlp.info.oo2.accesobd.DatabaseAccessProxy login
GRAVE: Acceso invalido a la base de datos!
您可以通過調用getHandlers()
並遍歷該列表來刪除不需要的處理程序,對任何您不需要的調用removeHandler()
。 默認處理程序通常添加在名為""
(空字符串)的根記錄器中。
public class LoggerHandlers {
public static void main( String[] args ) {
// clean slate, remove all
Logger root = Logger.getLogger( "" );
Handler[] handlers = root.getHandlers();
for( Handler h : handlers )
root.removeHandler( h );
Logger.getLogger( LoggerHandlers.class.getName() ).warning( "Test" );
}
}
然而,這通常是一個非常糟糕的主意。 它可以防止系統操作員(“sysop”)從外部配置您的應用程序。 這是一個非常用戶敵對的應用程序。 僅在您別無選擇時在調試期間使用此選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.