Comme certains le savent bien, je code sous NetBeans pour mes applis en Java et NetBeans a cette fichue manie de nous forcer à utiliser le logger embarqué dans Java (qui est une belle saloperie soit dit en passant). Bref, aucun moyen d'utiliser une macro pour générer le code de déclaration de ce logger dans la configuration par défaut. Sauf que je viens de trouver comment faire !!! Et c'était tellement facile que je regrette de ne pas avoir cherché la solution avant.
Voici la manipulation :
1) Aller dans le menu Tools > Options > Editor > Code Templates
2) Cliquer sur New et entrer psfl pour "Public Static Final Logger"
3) Ajouter le code suivant dans l'onglet "Expanded Text"
${no-format}private static final ${loggerType type="org.slf4j.Logger" default="Logger" editable="false"} LOGGER = ${LoggerFactoryType type="org.slf4j.LoggerFactory" default="LoggerFactory" editable="false"}.getLogger(${CLASS editable="false" currClassName}.class.getCanonicalName());${cursor}
4) Appliquer et fermer la fenêtre.
Comment s'en servir ensuite ?
1) Quelque par dans votre classe taper : psfl puis TAB (ou la touche d'expansion que vous avez défini) et NetBeans générera le code suivant :
// Avec les imports qui vont bien évidemment :D
private static final Logger LOGGER = LoggerFactory.getLogger(MaClass.class.getCanonicalName());
Explications :
- ${no-format} : Demande à NetBeans de ne pas formatter la ligne générée
- ${loggerType type="org.slf4j.Logger" default="Logger" editable="false"} : Demande à NetBeans d'importer la classe Logger et de la définir comme type de la variable
- ${CLASS editable="false" currClassName} : Demande à NetBeans d'écrire à cet emplacement le nom de la classe courante
- ${cursor} : Demande à NetBeans de positionner le cuseur d'édition à cet emplacement à la fin de la génération