J'utilise logback et j'ai besoin de consigner toutes les données interrogées par les clients dans un fichier journal. Toutes les données demandées par les clients doivent être enregistrées dans le même fichier. Le processus d'enregistrement ressemble simplement ci-dessous:Enregistrement d'une chaîne de grande taille dans Java
private static final OUTPUTFILELOGGER = Logger.getLogger(...);
String outputString = null;
try {
Map<String, Object> outputMap = doService(); // queries data requested by clients.
.... // do something after business logic..
outputLog = outputMap.toString(); // critical!!
} catch (Throwable e) {
handling exception
} finally {
OUTPUTFILELOGGER.info(outputString);
}
Il fonctionne généralement bien, mais parfois, il se pose OutOfMemoryError avec l'appel de toString à la variable outputMap lorsque les données est trop grand pour faire une chaîne. Donc, je veux que ça marche de façon à ce que le streaming se fasse sans problème de performance. " Et je ne sais pas comment le faire efficacement et gracieusement.
Une idée?