Considero che scriverò un semplice logger basato su file AppLogger
da utilizzare nelle mie app, idealmente dovrebbe essere un singleton, quindi posso chiamarlo tramite
public class AppLogger {
public static String file = "..";
public void logToFile() {
// Write to file
}
public static log(String s) {
AppLogger.getInstance().logToFile(s);
}
}
E per usarlo
AppLogger::log("This is a log statement");
Il problema è, qual è il momento migliore in cui dovrei fornire il valore del file poiché è solo un singleton?
Oppure come rifattorizzare il codice precedente (o saltare usando singleton) in modo che possa personalizzare il percorso del file di log? (Supponiamo che non abbia bisogno di scrivere su più allo stesso tempo)
P.S. So che posso usare la biblioteca, ad es. log4j, ma considera che è solo una domanda di progettazione, come rifattorizzare il codice sopra?