O Sistema de Logging é uma aplicação de gerenciamento de tarefas que demonstra o uso de logging em Java, utilizando componentes como proxies dinâmicos, reflection e anotações customizadas.
- Adicionar Tarefa (
addTask
): Permite adicionar uma nova tarefa com uma descrição. - Completar Tarefa (
completeTask
): Marca uma tarefa como concluída utilizando o índice da tarefa na lista. - Listar Tarefas (
listTasks
): Exibe todas as tarefas com suas descrições e status de conclusão.
Task.java
: Representa uma tarefa com descrição e status.TaskManager.java
: Interface para gerenciar tarefas.TaskManagerImpl.java
: Implementação da interface TaskManager.Main.java
: Classe principal para executar a aplicação.
- Proxy Dinâmico e Logging: Utiliza proxies dinâmicos para adicionar logs às chamadas de métodos anotados com
@Loggable
. - Componentes:
Main:
Configura oTaskManager
e cria proxies dinâmicos para adicionar funcionalidade de logging.Task:
Representa uma tarefa com descrição e status de conclusão.TaskManager:
Define métodos para adicionar, completar e listar tarefas.TaskManagerImpl:
Implementa os métodos de gerenciamento de tarefas.LoggingHandler:
Intercepta chamadas de método em proxies e adiciona logs para métodos anotados.@Loggable:
Anotação customizada para marcar métodos com logging.
- Ao chamar métodos anotados com
@Loggable
, uma mensagem de log é exibida, mostrando que o método foi chamado. - O proxy dinâmico adiciona logs para métodos anotados, antes de delegar a chamada ao método real.