-
Notifications
You must be signed in to change notification settings - Fork 0
Utilisation du "LoggerFactory"
LoggerFactory consiste à gérer tous les ILogger puis de gérer la sauvegarder.
Cette classe est un LoggerFactory de défaut si l'utilisateur ne souhaite pas en crée lui-même en implémentant ILoggerFactory.
/**
* Ce constructeur permet de créer un LoggerFactory.
*
* @param dir Le dossier où les fichiers d'enregistrement des messages seront enregistrés.
*/
public LoggerFactory(@NotNull final File dir) throws InternalError {
if (!dir.exists())
if (!dir.mkdir())
throw new InternalError("The Logger folder couldn't be created.\nThis could be due to a lack of permission or inaccurate path.");
this.logsDir = dir;
}
Principalement vous n'allez avoir qu'un LoggerFactory la plupart du temps. Il est donc logique de l'initialiser dans votre classe principale. Comme ci-dessous.
public class MainClass {
private final LoggerFactory loggerFactory;
public LoggerFactory getLoggerFactory() {
return this.loggerFactory;
}
public MainClass() {
this.loggerFactory = new LoggerFactory(new File("path/to/logsDir"));
}
}
Comme dis ci-dessus, dans les cas principaux il vous sera pas nécessaire d'utiliser plusieurs LoggerFactory. Vous pourriez totalement en créer plusieurs dans un cas où vous souhaitez faire du "dispatching" de dossier selon vos désirs, RemasteredLogger n'est qu'ici pour faciliter la tâche et laisse libre a votre imagination.
final ILogger logger1 = this.loggerFactory.getLogger("Logger1");
final Logger logger1_ = (Logger) logger1;
final Logger mainClassLogger = (Logger) this.loggerFactory.getLogger(this.getClass());
final ILogger mainClassLogger_ = mainClassLogger;
final Logger _mainClassLogger = (Logger) this.loggerFactory.getLogger(MainClass.class);
final ILogger _mainClassLogger_ = _mainClassLogger;
Voici un exemple de procéder ci-dessus.
Vous devez savoir que pour récupérer un Logger où en créer un s'effectue depuis un ILoggerFactory pour attacher directement le Logger au ILoggerFactory ainsi permettant la gestion des "logs".
Mais vous pouvez aussi créer un Logger mais vous constaterez qu'il demandera obligatoirement un ILoggerFactory en paramètre.
/**
* Ce constructeur permet de créer un Logger. Il est généralement créer depuis le Factory lui-même.
*
* @param name Le nom du Logger.
* @param loggerFactory Le Factory du Logger.
*/
public Logger(String name, ILoggerFactory loggerFactory) {
this.name = name;
this.loggerFactory = loggerFactory;
}
Pour la plupart des utilisateurs vous utiliserez juste save()
mais il existe pour les personnes qui souhaite personnaliser certaines choses, plusieurs autres méthodes que vous pourriez utiliser de la manière suivante.
try {
this.loggerFactory.save();
} catch (IOException e) {
e.printStackTrace();
}
List<String> othersLogs = new ArrayList<>();
try {
this.loggerFactory.save(othersLogs);
} catch (IOException e) {
e.printStackTrace();
}
List<String> othersLogs2 = new ArrayList<>();
List<String> othersLogs3 = new ArrayList<>();
List<String> othersLogs4 = new ArrayList<>();
try {
this.loggerFactory.save((List<String>[]) Arrays.asList(othersLogs2, othersLogs3, othersLogs4).toArray());
} catch (IOException e) {
e.printStackTrace();
}
RemasteredLogger is a logger as simple as it is complex, it uses SLF4j as an API base. This logger provides the developer with ease of use for a wide variety of utility. This also allows the simplicity of saving under several loggers but also the complexity of being able to create “Class” or single event loggers.
Class | Version | Security |
---|---|---|
Logger | ||
ILogger | ||
LoggerFactory | ||
ILoggerFactory |
// https://mvnrepository.com/artifact/codes.wesley-dev/remasteredlogger
implementation group: 'codes.wesley-dev', name: 'remasteredlogger', version: '1.1.4'
Jetbrains Annotations
SLF4j
// https://mvnrepository.com/artifact/org.slf4j/slf4j-api
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.0-alpha1'
// https://mvnrepository.com/artifact/org.jetbrains/annotations
implementation group: 'org.jetbrains', name: 'annotations', version: '20.1.0'
Version | Java Compatibility |
---|---|
1.1.4 | Java 8 and Upper |
1.1.3 | Java 9 and Upper |
<= 1.1.2 | ❌ (Security and Compatibility) |
Wesley Levasseur — Creator, Initial Work - KanekiReal