Skip to content

Commit 667350b

Browse files
committed
#25 - Java
1 parent 9791ef4 commit 667350b

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

Roadmap/25 - LOGS/java/Josegs95.java

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
import java.util.Random;
4+
import java.util.logging.ConsoleHandler;
5+
import java.util.logging.Handler;
6+
import java.util.logging.Level;
7+
import java.util.logging.Logger;
8+
9+
public class Josegs95 {
10+
private static final Logger logger = Logger.getLogger(Josegs95.class.getName());
11+
12+
public static void main(String[] args) {
13+
//Ejercicio
14+
//Desactivo el uso de los handlers por defecto para que no salga duplicado
15+
//los mensajes por consola
16+
logger.setUseParentHandlers(false);
17+
18+
Handler consoleHandler = new ConsoleHandler();
19+
logger.setLevel(Level.ALL); //Le digo que maneje todos los tipos de mensajes
20+
consoleHandler.setLevel(Level.ALL); //Idem, pero en concreto al handler que muestra por consola
21+
logger.addHandler(consoleHandler);
22+
23+
// System.out.println("Tipos de mensaje 'logging' de mas leve a mas grave:");
24+
// logger.finest("Mensaje Finest");
25+
// logger.finer("Mensaje Finer");
26+
// logger.fine("Mensaje Fine");
27+
// logger.config("Mensaje Config");
28+
// logger.info("Mensaje Info");
29+
// logger.warning("Mensaje Warning");
30+
// logger.severe("Mensaje Severe");
31+
32+
//Reto
33+
retoFinal();
34+
}
35+
36+
private static Random rnd;
37+
private static Map<String, String> taskMap;
38+
39+
public static void retoFinal(){
40+
rnd = new Random();
41+
taskMap = new HashMap<>();
42+
43+
addTask("Limpiar", "Limpiar la casa");
44+
addTask("Cocinar", "Preparar el almuerzo");
45+
addTask("Comprar", "Comprar lo que haga falta");
46+
addTask("Lavadora", "Hacer una lavadora");
47+
48+
showTasks();
49+
50+
deleteTask("Afeitarse");
51+
deleteTask("Comprar");
52+
53+
showTasks();
54+
}
55+
56+
private static void addTask(String name, String description){
57+
long start = System.currentTimeMillis();
58+
try{
59+
Thread.sleep(rnd.nextInt(3) * 1000);
60+
taskMap.put(name, description);
61+
logger.fine("Tarea " + name + " añadida correctamente.");
62+
} catch (InterruptedException e) {
63+
logger.warning(e.getMessage());
64+
}
65+
long end = System.currentTimeMillis();
66+
logger.finest(String.format("Tiempo de ejecución %.4fs.", (end - start) / 1000.0));
67+
}
68+
69+
private static void deleteTask(String name){
70+
long start = System.currentTimeMillis();
71+
try{
72+
Thread.sleep(rnd.nextInt(3) * 1000);
73+
if (taskMap.get(name) == null){
74+
logger.info("No se ha borrado la tarea " + name + " porque no existe en el registro");
75+
return;
76+
}
77+
taskMap.remove(name);
78+
logger.fine("Tarea " + name + " añadida correctamente.");
79+
} catch (InterruptedException e) {
80+
logger.warning(e.getMessage());
81+
}
82+
long end = System.currentTimeMillis();
83+
logger.finest(String.format("Tiempo de ejecución %.4fs.", (end - start) / 1000.0));
84+
}
85+
86+
private static void showTasks(){
87+
long start = System.currentTimeMillis();
88+
if (taskMap.size() == 0){
89+
logger.info("El registro de tareas está vacío");
90+
return;
91+
}
92+
try{
93+
Thread.sleep(rnd.nextInt(3) * 1000);
94+
for(Map.Entry<String, String> entry : taskMap.entrySet())
95+
System.out.println("Tarea: " + entry.getKey() + ", " + entry.getValue());
96+
} catch (InterruptedException e) {
97+
logger.warning(e.getMessage());
98+
}
99+
long end = System.currentTimeMillis();
100+
logger.finest(String.format("Tiempo de ejecución %.4fs.", (end - start) / 1000.0));
101+
}
102+
}

0 commit comments

Comments
 (0)