2016-07-05 37 views
5

Ciao, ho una domanda riguardante un logger log4j.log4j espressione regolare? [{}]

C'è una parte del testo del logger che non seguo del tutto. La linea si presenta come segue

logger.debug("Some text goes here [{}] and some more text here", someObject.function()); 

ho dato un'occhiata, ma non riesco a trovare questo come un'espressione regolare, si odora fortemente come potrebbe essere e anche se ho il sospetto che sarà sostituito dal restituita valore di someObject.function() molto come si potrebbe sostituire i valori di stringa in uscita posizionando un% s. Sarei corretto in questa ipotesi? se no, per favore, elabora come funziona.

risposta

3

Non è un'espressione regolare. {} è una sintassi speciale per stampare gli oggetti e che è preferibile rispetto alla concatenazione di stringhe. Ad esempio,

logger.debug("{}, {}", o1, o2); // 2 objects will be printed 
logger.debug(o1 + ", " + o2); // the same in concatenation style 

vi suggerisco di leggere su advantages of formatting with {} instead of string concatenation.

Vorrei aggiungere che la maggior parte dei sistemi di registrazione supportano asynchronous logging parameterized messages, significa che si otterrà sempre un valore reale (non garantito dalla concatenazione).

+0

Grazie per le informazioni extra :) –

2

Il valore di someObject.function() sarà ottenere sostituito in {}

+2

Grazie, risposta breve e chiara. –