1 00:00:00,000 --> 00:00:05,320 Venga, niños 2 00:00:05,320 --> 00:00:06,240 Vamos 3 00:00:06,240 --> 00:00:09,320 Vale, a ver 4 00:00:09,320 --> 00:00:12,099 ¿Cómo le decimos a Maven 5 00:00:12,099 --> 00:00:14,019 Que necesitamos una dependencia? 6 00:00:14,779 --> 00:00:16,160 Pues tenemos que 7 00:00:16,160 --> 00:00:17,600 Decirle cuál es 8 00:00:17,600 --> 00:00:19,600 ¿Y cómo podemos averiguar cuál es? 9 00:00:19,920 --> 00:00:21,079 Menos mal 10 00:00:21,079 --> 00:00:24,179 Que tenemos una cosa 11 00:00:24,179 --> 00:00:25,839 Si yo encuentro el ratón 12 00:00:25,839 --> 00:00:27,679 No 13 00:00:27,679 --> 00:00:28,839 Eso también 14 00:00:28,839 --> 00:00:30,980 Que se llama 15 00:00:30,980 --> 00:00:33,820 el repositorio de Maven 16 00:00:33,820 --> 00:00:38,020 entonces, en cuanto busquéis 17 00:00:38,020 --> 00:00:40,240 Maven repositorio, la primera que os va a salir 18 00:00:40,240 --> 00:00:40,759 es esto 19 00:00:40,759 --> 00:00:43,979 y aquí te sale 20 00:00:43,979 --> 00:00:46,219 todas las tropecientas 21 00:00:46,219 --> 00:00:47,539 mil millones de cosas 22 00:00:47,539 --> 00:00:50,240 que tú puedes descargar y usar 23 00:00:50,240 --> 00:00:51,920 muchas 24 00:00:51,920 --> 00:00:52,859 muchísimas 25 00:00:52,859 --> 00:00:55,380 entonces aquí, lo complicado 26 00:00:55,380 --> 00:00:57,219 es encontrarlo 27 00:00:57,219 --> 00:00:59,479 y luego una vez que lo has encontrado 28 00:00:59,479 --> 00:01:02,039 que te case con tu versión y te funcione 29 00:01:02,039 --> 00:01:03,899 normalmente esto es un camino 30 00:01:03,899 --> 00:01:06,280 interminable hasta que consigues 31 00:01:06,280 --> 00:01:08,019 todas las dependencias que casan 32 00:01:08,019 --> 00:01:09,939 exactamente con lo que quieres hacer y te funciona 33 00:01:09,939 --> 00:01:11,659 y cuando ya lo tienes 34 00:01:11,659 --> 00:01:13,920 no lo toques nunca 35 00:01:13,920 --> 00:01:15,840 nunca jamás, porque en cuanto 36 00:01:15,840 --> 00:01:18,159 toques algo, pum, lo que pasa es que hay veces 37 00:01:18,159 --> 00:01:19,939 no lo tocas tú, pero te han tocado la 38 00:01:19,939 --> 00:01:22,019 versión del servidor, entonces ya 39 00:01:22,019 --> 00:01:23,680 otra vez tienes que empezar 40 00:01:23,680 --> 00:01:25,560 a tocarlo todo 41 00:01:25,560 --> 00:01:27,540 en nuestro caso afortunadamente 42 00:01:27,540 --> 00:01:29,579 Solo es los 4J 43 00:01:29,579 --> 00:01:31,840 Pues vamos a hacer una búsqueda 44 00:01:31,840 --> 00:01:33,560 Una búsqueda, los 4J 45 00:01:33,560 --> 00:01:35,019 Dos, que me sacas por ahí 46 00:01:35,019 --> 00:01:37,540 Venga, busca 47 00:01:37,540 --> 00:01:39,700 Busca 48 00:01:39,700 --> 00:01:41,439 Esto no suena 49 00:01:41,439 --> 00:01:44,379 Esto no nos suena 50 00:01:44,379 --> 00:01:47,540 Esto no nos suena 51 00:01:47,540 --> 00:01:51,260 A ver, es que a mi no me gusta ninguna de estas 52 00:01:51,260 --> 00:01:51,840 Porque 53 00:01:51,840 --> 00:01:58,140 Vamos a hacer una cosa 54 00:01:58,140 --> 00:01:59,120 Voy a ponerle 55 00:01:59,120 --> 00:02:03,680 bueno, no hemos dicho que es de Apache 56 00:02:03,680 --> 00:02:06,459 que Apache, ya sabéis que tiene un montón 57 00:02:06,459 --> 00:02:08,580 de cosas de las que se ha apropiado 58 00:02:08,580 --> 00:02:10,219 bueno, más que se ha apropiado, que las ha desarrollado 59 00:02:10,219 --> 00:02:12,539 de Java, vale, entonces 60 00:02:12,539 --> 00:02:18,300 bien, Apache 61 00:02:18,300 --> 00:02:20,120 los 4J, vale 62 00:02:20,120 --> 00:02:22,919 entonces 63 00:02:22,919 --> 00:02:28,659 esto ya me dice, uno 64 00:02:28,659 --> 00:02:31,419 lo buscaría en principio por los 4J 65 00:02:31,419 --> 00:02:33,060 Apache, porque Apache 66 00:02:33,060 --> 00:02:35,080 es él. Y le sale esto 67 00:02:35,080 --> 00:02:36,219 y 68 00:02:36,219 --> 00:02:37,979 los cuatro 69 00:02:37,979 --> 00:02:39,639 los cuatro jotados. 70 00:02:42,789 --> 00:02:43,870 Yo quiero... 71 00:02:43,870 --> 00:02:45,770 No, no me... 72 00:02:45,770 --> 00:02:47,370 Que no me funciona. 73 00:02:49,030 --> 00:02:49,969 No, no, no. 74 00:02:49,969 --> 00:02:52,050 No, porque está conectado al ordenador. 75 00:02:53,830 --> 00:02:54,870 Pero da igual. 76 00:02:55,129 --> 00:02:56,150 En otro aula 77 00:02:56,150 --> 00:02:57,909 yo estoy proyectando. 78 00:02:58,110 --> 00:02:59,629 Claro, me debería funcionar. 79 00:02:59,629 --> 00:03:01,669 Pero es que 80 00:03:01,669 --> 00:03:02,770 estábamos usando el de clases. 81 00:03:05,009 --> 00:03:07,050 Ah, es porque 82 00:03:07,050 --> 00:03:09,610 Me avisa, esa es la clave 83 00:03:09,610 --> 00:03:11,409 Por eso no funciona en grado medio 84 00:03:11,409 --> 00:03:13,629 Porque en grado medio no uso portátil, uso el de clase 85 00:03:13,629 --> 00:03:15,370 Entonces tendría que poner 86 00:03:15,370 --> 00:03:16,949 Los USBs también 87 00:03:16,949 --> 00:03:19,189 Ah, vale, ya decía 88 00:03:19,189 --> 00:03:21,210 ¿Y por qué no me funciona el resto de...? Vale, vale 89 00:03:21,210 --> 00:03:22,949 Porque no tengo los USBs 90 00:03:22,949 --> 00:03:24,990 Sois estupendos, bueno, es la clave 91 00:03:24,990 --> 00:03:27,789 ¿Eh? 92 00:03:27,789 --> 00:03:29,750 ¿Está conectado igual por HDMI? 93 00:03:30,189 --> 00:03:32,189 Claro, mi portátil está solo por HDMI 94 00:03:32,189 --> 00:03:33,409 Pero... 95 00:03:33,409 --> 00:03:35,129 Y el otro está por USB y HDMI. 96 00:03:35,990 --> 00:03:37,689 Entonces, claro, tendría que ir por los USBs. 97 00:03:38,030 --> 00:03:39,509 Por eso tampoco puedo coger la cámara. 98 00:03:39,689 --> 00:03:41,710 Desde mi portátil, porque va por USB, etc. 99 00:03:42,469 --> 00:03:43,349 Vale, entonces. 100 00:03:45,349 --> 00:03:51,210 Lo que pasa es que yo quería la 2. 101 00:04:03,419 --> 00:04:04,979 A ver, y si pongo API. 102 00:04:04,979 --> 00:04:10,550 Es que, a veros, la... 103 00:04:10,550 --> 00:04:12,030 Esto no lo quiero. 104 00:04:19,790 --> 00:04:20,750 Ven, aquí que pone 105 00:04:20,750 --> 00:04:22,509 septiembre del 2018. 106 00:04:25,750 --> 00:04:26,189 Esta. 107 00:04:30,750 --> 00:04:31,189 Vale. 108 00:04:39,230 --> 00:04:40,550 Vale, pues entonces, 109 00:04:40,870 --> 00:04:43,110 el core y el API. 110 00:04:45,620 --> 00:04:45,740 Sí. 111 00:04:48,689 --> 00:04:50,589 En realidad, a ver, yo las tengo ya en mi proyecto. 112 00:04:51,069 --> 00:04:52,350 Podríamos copiar y pegar, 113 00:04:52,350 --> 00:04:54,870 pero vamos a hacer 114 00:04:54,870 --> 00:04:56,970 vamos a meternos en la basura directamente 115 00:04:56,970 --> 00:04:58,170 a ver si nos funciona 116 00:04:58,170 --> 00:05:00,810 entonces en general cuando uno ofrece 117 00:05:00,810 --> 00:05:02,089 un paquete de clases 118 00:05:02,089 --> 00:05:04,930 recordad la arquitectura, un segundito 119 00:05:04,930 --> 00:05:06,569 de que normalmente tú 120 00:05:06,569 --> 00:05:08,750 haces interfaces con los métodos 121 00:05:08,750 --> 00:05:10,410 y luego implementaciones 122 00:05:10,410 --> 00:05:13,110 pues en la mayoría de los casos 123 00:05:13,110 --> 00:05:14,750 cuando uno busca dependencias 124 00:05:14,750 --> 00:05:15,970 por ahí tiene la misma estructura 125 00:05:15,970 --> 00:05:18,949 está el API, que son las interfaces sin más 126 00:05:18,949 --> 00:05:20,829 luego está el Core, que son las 127 00:05:20,829 --> 00:05:22,930 implementaciones, que es justo las dos cosas que me está 128 00:05:22,930 --> 00:05:25,050 ofreciendo, el API y el 129 00:05:25,050 --> 00:05:26,389 core, ¿vale? Entonces, yo 130 00:05:26,389 --> 00:05:28,250 cogería las dos, 131 00:05:28,529 --> 00:05:30,889 ¿vale? Entonces, uno pincha 132 00:05:30,889 --> 00:05:31,329 aquí, 133 00:05:32,990 --> 00:05:35,069 core, y ya te dice, ¿qué versión 134 00:05:35,069 --> 00:05:37,149 quieres? Vámonos 135 00:05:37,149 --> 00:05:38,949 a esta de aquí, la de septiembre 136 00:05:38,949 --> 00:05:39,529 18. 137 00:05:42,009 --> 00:05:42,889 Pinchamos aquí, 138 00:05:44,189 --> 00:05:45,069 sí, pincha el core, 139 00:05:45,649 --> 00:05:46,769 y ya sale esto, 140 00:05:47,290 --> 00:05:48,589 que esto es lo que hay que 141 00:05:48,589 --> 00:05:50,529 copiar en dependencias 142 00:05:50,529 --> 00:05:52,629 entonces todo en cuanto pinchas aquí ya se copia 143 00:05:52,629 --> 00:05:56,689 cuando pinchas aquí 144 00:05:56,689 --> 00:05:57,670 ya se copia 145 00:05:57,670 --> 00:06:00,930 si en cuanto pinches ya se selecciona 146 00:06:00,930 --> 00:06:01,529 y se copia 147 00:06:01,529 --> 00:06:03,990 si estuviéramos trabajando con Gradle 148 00:06:03,990 --> 00:06:06,509 pues esto es lo que habría que poner 149 00:06:06,509 --> 00:06:08,069 en el fichero de configuración de Gradle 150 00:06:08,069 --> 00:06:10,310 pero como estamos trabajando con Maven 151 00:06:10,310 --> 00:06:11,250 esto 152 00:06:11,250 --> 00:06:13,209 una vez que ya está copiado 153 00:06:13,209 --> 00:06:15,930 nos vamos al Pong y a la 154 00:06:15,930 --> 00:06:18,250 ahí está 155 00:06:18,250 --> 00:06:23,589 Este, o sea, yo me he ido 156 00:06:23,589 --> 00:06:24,209 Vamos a ver 157 00:06:24,209 --> 00:06:26,790 A la última versión, vamos a ver 158 00:06:26,790 --> 00:06:28,029 ¿De dónde he salido yo? 159 00:06:30,420 --> 00:06:32,959 Yo he buscado los 4J2 a API 160 00:06:32,959 --> 00:06:36,899 He llegado a 161 00:06:36,899 --> 00:06:39,000 Arriba 162 00:06:39,000 --> 00:06:40,759 ¿Cómo arriba? 163 00:06:41,600 --> 00:06:42,540 En el séptimo 164 00:06:42,540 --> 00:06:43,620 A este 165 00:06:43,620 --> 00:06:46,060 He pinchado aquí 166 00:06:46,060 --> 00:06:48,800 Y aquí me ofrece el core y el API 167 00:06:48,800 --> 00:06:49,980 Pues vamos a los dos 168 00:06:49,980 --> 00:06:52,360 El core ya lo he copiado 169 00:06:52,360 --> 00:06:53,360 Voy a este 170 00:06:53,360 --> 00:06:55,879 Selecciono la misma versión 171 00:06:55,879 --> 00:06:57,519 La del 18 de septiembre 172 00:06:57,519 --> 00:07:00,540 Pincho para que copie 173 00:07:00,540 --> 00:07:03,819 Y pego aquí 174 00:07:03,819 --> 00:07:05,980 ¿Vale? 175 00:07:07,399 --> 00:07:08,519 Entonces con suerte 176 00:07:08,519 --> 00:07:10,100 Con estas dos puedo ya trabajar 177 00:07:10,100 --> 00:07:13,000 Si no puedo trabajar ya me dirá 178 00:07:13,000 --> 00:07:14,379 Class not found 179 00:07:14,379 --> 00:07:16,399 Exception, class no se que, ya me dirá cosas 180 00:07:16,399 --> 00:07:17,579 Entonces tendré que seguir buscando 181 00:07:17,579 --> 00:07:19,660 Pero con suerte con estas dos 182 00:07:19,660 --> 00:07:21,160 ¿Y el API? 183 00:07:22,060 --> 00:07:24,500 El API es el conjunto de interfaces 184 00:07:24,500 --> 00:07:25,920 Y el core es la implementación 185 00:07:25,920 --> 00:07:28,680 Suele ser una estructura típica de dependencias 186 00:07:28,680 --> 00:07:29,720 El API y el core 187 00:07:29,720 --> 00:07:31,939 Ambos dentro de dependencias 188 00:07:31,939 --> 00:07:34,459 Dentro de las dependencias 189 00:07:34,459 --> 00:07:35,480 Que habéis escrito a mano 190 00:07:35,480 --> 00:07:40,100 Entonces en cuanto tengáis las dos 191 00:07:40,100 --> 00:07:41,740 Dependencias estas 192 00:07:41,740 --> 00:07:42,839 Y ahora luego aquí ya viene 193 00:07:42,839 --> 00:07:44,779 Y guardéis 194 00:07:44,779 --> 00:07:47,860 Al POM 195 00:07:47,860 --> 00:07:49,980 te tendrás que crear tú 196 00:07:49,980 --> 00:07:52,639 este nodo de dependencias 197 00:07:52,639 --> 00:07:53,160 a mano 198 00:07:53,160 --> 00:07:55,720 este nodo de dependencias 199 00:07:55,720 --> 00:07:57,519 con su principio y su fin 200 00:07:57,519 --> 00:07:59,180 te lo tendrás que crear a mano 201 00:07:59,180 --> 00:08:02,060 y ahora ya dentro toda la lista de nodos 202 00:08:02,060 --> 00:08:03,740 dependencias, dependencias, dependencias y otras 203 00:08:03,740 --> 00:08:08,129 y en cuanto guardéis 204 00:08:08,129 --> 00:08:09,129 le deis archivar 205 00:08:09,129 --> 00:08:11,410 pues se hace la magia 206 00:08:11,410 --> 00:08:13,170 en cuanto le damos a este botón 207 00:08:13,170 --> 00:08:15,649 ¡pum! ya pasan cosas 208 00:08:15,649 --> 00:08:18,089 ¿qué está pasando? 209 00:08:18,089 --> 00:08:20,889 que el Eclipse, el plugin 210 00:08:20,889 --> 00:08:22,670 de Maven de Eclipse, claro, se está conectando 211 00:08:22,670 --> 00:08:25,009 al repositorio, está descargando 212 00:08:25,009 --> 00:08:26,269 todos los hard 213 00:08:26,269 --> 00:08:28,490 relacionados con esta dependencia 214 00:08:28,490 --> 00:08:31,050 los está poniendo en un repositorio local 215 00:08:31,050 --> 00:08:32,950 que ahora miramos a ver 216 00:08:32,950 --> 00:08:34,649 dónde está, porque siempre van a saber 217 00:08:34,649 --> 00:08:36,629 dónde está el repositorio local, porque a veces 218 00:08:36,629 --> 00:08:38,850 cuando Maven casca, lo mejor 219 00:08:38,850 --> 00:08:40,669 es borrar el repositorio local y empezar 220 00:08:40,669 --> 00:08:42,929 de nuevo, y una vez 221 00:08:42,929 --> 00:08:44,429 que lo ha descargado al repositorio local 222 00:08:44,429 --> 00:08:46,809 ya lo mete al classpad del sistema 223 00:08:46,809 --> 00:08:50,610 Todo eso ha hecho solo por darle yo a guardar 224 00:08:50,610 --> 00:08:52,009 De hecho 225 00:08:52,009 --> 00:08:53,730 Si nos vamos aquí de nuevo 226 00:08:53,730 --> 00:08:55,009 A nuestro proyecto Maven 227 00:08:55,009 --> 00:08:57,509 Nos vamos aquí, nos ha aparecido 228 00:08:57,509 --> 00:08:59,929 Esta etiquetita de aquí 229 00:08:59,929 --> 00:09:01,169 Con 230 00:09:01,169 --> 00:09:03,870 Todas las dependencias 231 00:09:03,870 --> 00:09:04,509 Que ha metido 232 00:09:04,509 --> 00:09:08,009 Log4j 233 00:09:08,009 --> 00:09:11,809 Fijaos que listo 234 00:09:11,809 --> 00:09:13,610 Esto, la versión de antes de septiembre 235 00:09:13,610 --> 00:09:14,230 No lo hacía 236 00:09:14,230 --> 00:09:16,490 Fijaos que listo 237 00:09:16,490 --> 00:09:19,570 la última versión que yo probé 238 00:09:19,570 --> 00:09:21,190 de esto, te metía 239 00:09:21,190 --> 00:09:22,850 el API y el core, punto pelota 240 00:09:22,850 --> 00:09:25,149 esta versión 241 00:09:25,149 --> 00:09:26,690 te metes dos hard 242 00:09:26,690 --> 00:09:27,909 ¿qué son los Jackson? 243 00:09:28,850 --> 00:09:29,850 ¿algunos no os lo han metido? 244 00:09:30,549 --> 00:09:32,110 a ver, yo os avisé ya 245 00:09:32,110 --> 00:09:34,669 o si no os lo avisé, os lo avisé ahora 246 00:09:34,669 --> 00:09:36,549 y por eso cuando me decíais, graba las clases 247 00:09:36,549 --> 00:09:38,529 no, os dije 248 00:09:38,529 --> 00:09:41,289 veréis que esto es muy complicado, porque esto ya va a ser 249 00:09:41,289 --> 00:09:43,129 un caos, a cada uno os va a salir 250 00:09:43,129 --> 00:09:45,309 una cosa, a uno le funciona, a otro no 251 00:09:45,309 --> 00:09:47,549 aquí hay mil variables de las que dependemos 252 00:09:47,549 --> 00:09:49,429 cuando uno consigue que todo el puzzle 253 00:09:49,429 --> 00:09:51,370 le encaje, a otro se le cae una pieza 254 00:09:51,370 --> 00:09:53,190 entonces esto ya empieza a ser un caos 255 00:09:53,190 --> 00:09:54,909 porque ya dependemos 256 00:09:54,909 --> 00:09:56,529 entonces este es un ejemplo 257 00:09:56,529 --> 00:09:59,409 a mí que me ha pasado, yo solamente 258 00:09:59,409 --> 00:10:00,889 poniendo estas dos dependencias 259 00:10:00,889 --> 00:10:03,330 no, no, no, perdón, perdón, perdón 260 00:10:03,330 --> 00:10:05,389 perdón, perdón, hazme, todo lo que he dicho 261 00:10:05,389 --> 00:10:07,350 es mentira, perdón 262 00:10:07,350 --> 00:10:09,049 es que ha abierto el proyecto que no era 263 00:10:09,049 --> 00:10:13,450 claro, es que he dicho, no me lo puedo creer 264 00:10:13,450 --> 00:10:15,350 Qué listo que me ha metido el Jackson solo 265 00:10:15,350 --> 00:10:16,590 Podría ser 266 00:10:16,590 --> 00:10:19,149 Vale, perdón, perdón, perdón 267 00:10:19,149 --> 00:10:21,490 Eso me pasa por, claro, es que tengo 268 00:10:21,490 --> 00:10:23,029 Todos los proyectos juntos 269 00:10:23,029 --> 00:10:25,990 Vale, perdón, perdónenme 270 00:10:25,990 --> 00:10:29,110 Lo siento, ya 271 00:10:29,110 --> 00:10:31,830 Pero, perdonad, ha metido los dos 272 00:10:31,830 --> 00:10:33,409 Lo del Jackson 273 00:10:33,409 --> 00:10:34,610 Vendrá después 274 00:10:34,610 --> 00:10:37,490 Lo del Jackson, vale, pues estamos 275 00:10:37,490 --> 00:10:38,450 Todos igualitos, dime 276 00:10:38,450 --> 00:10:41,429 El POM 277 00:10:41,429 --> 00:10:41,889 Sí 278 00:10:41,889 --> 00:10:44,149 Tiene solo estas dos 279 00:10:44,149 --> 00:10:47,070 Las que he copiado del repositorio de Maven 280 00:10:47,070 --> 00:10:58,700 Tiene el nodo que he creado 281 00:10:58,700 --> 00:10:59,120 Este 282 00:10:59,120 --> 00:11:10,519 Hace dos años 283 00:11:10,519 --> 00:11:12,559 Tenía un alumno con tendencia 284 00:11:12,559 --> 00:11:14,360 A echar cabezadas en clase 285 00:11:14,360 --> 00:11:15,759 Bueno, a ver, todos los años 286 00:11:15,759 --> 00:11:17,820 Hay alumnos que hacen echar cabezadas 287 00:11:17,820 --> 00:11:19,639 Y ese alumno 288 00:11:19,639 --> 00:11:20,980 Primero echaba cabezadas 289 00:11:20,980 --> 00:11:23,340 y en segundo dijo, he comprobado 290 00:11:23,340 --> 00:11:24,799 que si me duermo un minuto 291 00:11:24,799 --> 00:11:26,659 ya me he perdido 292 00:11:26,659 --> 00:11:27,700 ¿qué has escrito ahí? 293 00:11:29,059 --> 00:11:30,620 con lo cual, los que tengáis 294 00:11:30,620 --> 00:11:32,980 esa cabeza no la sentéis, porque es que 295 00:11:33,799 --> 00:11:36,379 si es que alguien la tuviera 296 00:11:36,379 --> 00:11:38,279 vale, pues entonces 297 00:11:38,279 --> 00:11:43,139 pues que ha hecho Maben 298 00:11:43,139 --> 00:11:44,779 lo que he dicho, ha descargado los hard 299 00:11:44,779 --> 00:11:46,580 lo ha guardado en un repositorio local 300 00:11:46,580 --> 00:11:48,320 lo ha añadido al pad del sistema 301 00:11:48,320 --> 00:11:50,360 ¿dónde está ese repositorio local? 302 00:11:50,980 --> 00:11:52,600 es decir, los JAR los ha 303 00:11:52,600 --> 00:11:54,159 bajado físicamente 304 00:11:54,159 --> 00:11:56,679 pero ojo, no los ha 305 00:11:56,679 --> 00:11:58,240 metido dentro del proyecto 306 00:11:58,240 --> 00:12:00,279 los JAR no están aquí dentro 307 00:12:00,279 --> 00:12:02,820 porque si estuvieran aquí dentro el proyecto 308 00:12:02,820 --> 00:12:04,639 pesaría un huevo, ¿vale? 309 00:12:04,659 --> 00:12:05,700 no los ha metido aquí dentro 310 00:12:05,700 --> 00:12:08,379 los ha puesto un reportero local, con lo cual 311 00:12:08,379 --> 00:12:09,779 no os peguéis 312 00:12:09,779 --> 00:12:12,620 con lo cual, me diríais 313 00:12:12,620 --> 00:12:14,940 ¿qué pasa si ahora yo este proyecto 314 00:12:14,940 --> 00:12:16,139 lo despliego en otro sitio? 315 00:12:16,139 --> 00:12:17,820 si los JAR no están localmente 316 00:12:17,820 --> 00:12:20,080 claro 317 00:12:20,080 --> 00:12:23,080 pero es que cuando uno lo despliegue 318 00:12:23,080 --> 00:12:23,799 en otro sitio 319 00:12:23,799 --> 00:12:26,460 va a ver la dependencia en Maver 320 00:12:26,460 --> 00:12:28,440 ¿qué va a hacer ese otro equipo? 321 00:12:28,799 --> 00:12:30,460 va a mirar su repositorio local 322 00:12:30,460 --> 00:12:32,879 a ver si hubiera la casualidad que estuviera en estos hard 323 00:12:32,879 --> 00:12:35,100 y si no lo está, los descargaría para él 324 00:12:35,100 --> 00:12:36,059 entonces 325 00:12:36,059 --> 00:12:38,299 está automatizando 326 00:12:38,299 --> 00:12:41,299 la descarga de los hard cuando le haga falta 327 00:12:41,299 --> 00:12:42,820 nosotros nos limitamos 328 00:12:42,820 --> 00:12:44,700 a poner los dependencia aquí dentro 329 00:12:44,700 --> 00:12:47,320 y da igual donde despleguemos esto 330 00:12:47,320 --> 00:12:48,879 si él ve que no los tiene 331 00:12:48,879 --> 00:12:50,580 en el local y hacen falta los despliega. 332 00:12:50,639 --> 00:12:52,379 Ya nos olvidamos de eso, los descarga, perdón. 333 00:12:52,879 --> 00:12:54,360 Pues, ¿dónde está ese repositorio local? 334 00:12:55,600 --> 00:12:56,779 Pues, a ver, sí me acuerdo. 335 00:12:57,200 --> 00:12:57,980 Creo que no me acuerdo. 336 00:12:58,320 --> 00:12:59,399 Con lo cual, hasta que... 337 00:12:59,399 --> 00:12:59,840 No pasa nada. 338 00:13:00,480 --> 00:13:02,779 Vale, pues, entonces hemos quedado que estaba, 339 00:13:04,080 --> 00:13:08,100 acordaos en el usuario, carpeta M2, repositorio. 340 00:13:10,559 --> 00:13:15,820 Bueno, pues, ahora ya, ya sí que podemos hacer nuestra 341 00:13:15,820 --> 00:13:18,940 pequeña aplicación que envía logs. 342 00:13:20,240 --> 00:13:20,840 Vale. 343 00:13:20,899 --> 00:13:24,000 Entonces, primero no vamos a meterle ningún archivo de configuración. 344 00:13:26,120 --> 00:13:32,080 Vamos a hacer un primer paquete. 345 00:13:32,580 --> 00:13:38,559 Como mi grupo era condam2, pues la idea es que los paquetes tengan ese condam2. 346 00:13:39,240 --> 00:13:40,480 Pues yo qué sé. 347 00:13:43,399 --> 00:13:43,659 Main. 348 00:13:46,320 --> 00:13:46,919 Condam2. 349 00:13:46,919 --> 00:13:49,159 Bueno, porque yo a mi proyecto 350 00:13:49,159 --> 00:13:51,179 Mi proyecto Maven 351 00:13:51,179 --> 00:13:53,600 Le he dicho que su identificador de grupo 352 00:13:53,600 --> 00:13:54,980 Es com.dam2 353 00:13:54,980 --> 00:13:56,100 Que es mi nombre de dominio 354 00:13:56,100 --> 00:13:57,320 Era dam2.com 355 00:13:57,320 --> 00:13:59,940 Era dam2.com 356 00:13:59,940 --> 00:14:02,440 Bueno, ya, sí, pero porque se hace en orden distinto 357 00:14:02,440 --> 00:14:04,340 A ver, dam2.com 358 00:14:04,340 --> 00:14:05,980 Pero aquí en el nombre de paquete 359 00:14:05,980 --> 00:14:08,039 Esto es un tema de cómo se empaqueta en general 360 00:14:08,039 --> 00:14:09,980 ¿Vale? Los nombres de dominio 361 00:14:09,980 --> 00:14:11,139 Todos sabemos cómo son 362 00:14:11,139 --> 00:14:14,000 Pepito.com, Juanito.org 363 00:14:14,000 --> 00:14:15,580 Eso lo tenemos claro, ¿vale? 364 00:14:15,580 --> 00:14:34,039 Entonces, ¿cómo se suele empaquetar en las empresas? Pues, como la idea es que nuestros paquetes tengan nombres únicos dentro de todas las aplicaciones, que nuestras aplicaciones tengan nombres únicos, ¿vale? Pues, se suele empaquetar aprovechando la unicidad del nombre de dominio. 365 00:14:34,039 --> 00:14:35,980 pero se pone al revés 366 00:14:35,980 --> 00:14:37,899 com.dam2.main 367 00:14:37,899 --> 00:14:39,919 porque así tenemos la jerarquía mejor 368 00:14:39,919 --> 00:14:41,679 com es la carpeta 369 00:14:41,679 --> 00:14:43,919 com luego tendría tantas subcarpetas 370 00:14:43,919 --> 00:14:45,820 como subdominios 371 00:14:45,820 --> 00:14:48,080 tenga tu empresa, cada subdominio 372 00:14:48,080 --> 00:14:50,360 a su vez tendrá tantas carpetas como subdominios 373 00:14:50,360 --> 00:14:52,019 entonces tiene sentido que el nombre del paquete 374 00:14:52,019 --> 00:14:53,899 sea al revés, porque esta es 375 00:14:53,899 --> 00:14:55,860 la carpeta grandota, esta es la 376 00:14:55,860 --> 00:14:57,120 subcarpeta dam2 377 00:14:57,120 --> 00:14:59,220 y esta ya es la subcarpeta main 378 00:14:59,220 --> 00:15:01,860 y esto se correspondería 379 00:15:01,860 --> 00:15:03,500 con una empresa cuyo nombre de dominio es 380 00:15:03,500 --> 00:15:04,960 dam2.com, dime 381 00:15:04,960 --> 00:15:11,179 el proyecto 382 00:15:11,179 --> 00:15:13,559 no te habrá pasado lo de 383 00:15:13,559 --> 00:15:15,419 venga pues 384 00:15:15,419 --> 00:15:19,870 vamos a hacernos nuestra 385 00:15:19,870 --> 00:15:22,149 una clase normalicha y corrienticha 386 00:15:22,149 --> 00:15:36,379 vale, pues aquí en esta clase 387 00:15:36,379 --> 00:15:38,240 lo primero que queremos avisar cuando la aplicación 388 00:15:38,240 --> 00:15:40,519 arranca es, entrando en la aplicación 389 00:15:40,519 --> 00:15:42,320 para que uno, entonces eso ya 390 00:15:42,320 --> 00:15:44,039 podría ser un posible mensaje de log 391 00:15:44,039 --> 00:15:46,500 para saber en que momento ha arrancado la aplicación 392 00:15:46,500 --> 00:15:47,679 a qué hora, etc. 393 00:15:48,580 --> 00:15:50,279 Entonces, ¿quiénes 394 00:15:50,279 --> 00:15:52,320 mandan? Esto por supuesto 395 00:15:52,320 --> 00:15:54,299 lo podríamos hacer con un file 396 00:15:54,299 --> 00:15:55,720 reader y se acabó, pero 397 00:15:55,720 --> 00:15:57,779 qué complicado, ¿no? 398 00:15:58,240 --> 00:15:58,799 Entonces, 399 00:15:59,299 --> 00:16:01,879 como lo vamos a hacer con el 4J, 400 00:16:02,679 --> 00:16:04,220 ¿qué objeto es el que es capaz 401 00:16:04,220 --> 00:16:05,799 de escribir en un archivo? 402 00:16:06,340 --> 00:16:07,980 Pues un objeto que se llama 403 00:16:07,980 --> 00:16:08,820 logger. 404 00:16:10,580 --> 00:16:12,399 Entonces, de clase logger. 405 00:16:12,860 --> 00:16:14,340 Entonces, si queremos escribir logs, 406 00:16:15,580 --> 00:16:16,259 necesitamos 407 00:16:16,259 --> 00:16:17,259 Un objeto logger 408 00:16:17,259 --> 00:16:20,100 Que es el que es capaz de escribirlo 409 00:16:20,100 --> 00:16:21,860 Este objeto logger 410 00:16:21,860 --> 00:16:23,580 ¿Cómo se crea? 411 00:16:24,320 --> 00:16:24,960 De nuevo 412 00:16:24,960 --> 00:16:27,379 Constructores caca 413 00:16:27,379 --> 00:16:29,179 No los queremos 414 00:16:29,179 --> 00:16:32,600 Entonces este se crea 415 00:16:32,600 --> 00:16:35,269 Así 416 00:16:35,269 --> 00:16:37,029 Y aquí ¿Qué ponemos? 417 00:16:39,669 --> 00:16:40,110 Aquí 418 00:16:40,110 --> 00:16:41,909 Lo que 419 00:16:41,909 --> 00:16:44,870 Cuidado porque me ha importado el por defecto 420 00:16:44,870 --> 00:16:46,450 El logger 421 00:16:46,450 --> 00:16:48,070 De la herramienta java útil 422 00:16:48,070 --> 00:16:49,450 Ahora vamos a tener que quitarlo 423 00:16:49,450 --> 00:16:51,490 no queremos esto, queremos el de los 4.2.j 424 00:16:51,490 --> 00:16:53,730 recordad que al principio os he dicho 425 00:16:53,730 --> 00:16:55,570 la distribución estándar 426 00:16:55,570 --> 00:16:57,610 te trae una herramienta para hacer logs 427 00:16:57,610 --> 00:16:59,529 en java útil, pero bueno 428 00:16:59,529 --> 00:17:01,029 es más limitada que los 4.j 429 00:17:01,029 --> 00:17:03,990 la que mayoritariamente son los 4.j, ahora quitamos ese input 430 00:17:03,990 --> 00:17:05,589 entonces 431 00:17:05,589 --> 00:17:07,269 ¿qué ponemos aquí en getLogger? 432 00:17:07,309 --> 00:17:08,950 bueno, voy a quitarlo desde ya, no vaya 433 00:17:08,950 --> 00:17:11,430 para esto, no lo quiero 434 00:17:11,430 --> 00:17:13,789 ¿cuál quiero importar? 435 00:17:14,690 --> 00:17:15,829 quiero importar 436 00:17:15,829 --> 00:17:17,730 el de or apache login 437 00:17:17,730 --> 00:17:20,210 ¿Pero cuál de todos? 438 00:17:21,630 --> 00:17:22,990 Pues, a ver, es que 439 00:17:22,990 --> 00:17:25,049 como ha cambiado la versión 440 00:17:25,049 --> 00:17:26,809 no sé, yo creo que será el core 441 00:17:26,809 --> 00:17:28,329 Será el core 442 00:17:28,329 --> 00:17:30,250 Esto es como la vida misma, vamos a probar 443 00:17:30,250 --> 00:17:32,170 Vale, entonces 444 00:17:32,170 --> 00:17:36,910 Perdón 445 00:17:36,910 --> 00:17:37,849 Entonces 446 00:17:37,849 --> 00:17:39,829 ¿Qué se pone aquí? 447 00:17:40,769 --> 00:17:42,930 Se pone aquí la clase 448 00:17:42,930 --> 00:17:47,349 a la cual este logger está asociado 449 00:17:47,349 --> 00:17:49,190 en nuestro caso es 450 00:17:49,190 --> 00:17:51,329 main.class 451 00:17:51,329 --> 00:17:52,289 vale 452 00:17:52,289 --> 00:17:57,190 si, espera, es que a ver si 453 00:17:57,190 --> 00:17:58,849 este 454 00:17:58,849 --> 00:18:00,410 a ver si lo he escrito yo mal 455 00:18:00,410 --> 00:18:02,390 o es porque esta versión 456 00:18:02,390 --> 00:18:07,619 a ver 457 00:18:07,619 --> 00:18:09,819 no, voy a abrir la 458 00:18:09,819 --> 00:18:12,480 chuleta, a ver que he escrito mal 459 00:18:12,480 --> 00:18:14,140 por ejemplo 460 00:18:14,140 --> 00:18:15,759 aquí tendré 461 00:18:15,759 --> 00:18:20,269 ah, perdón 462 00:18:20,269 --> 00:18:22,029 que es que no es 463 00:18:22,029 --> 00:18:24,329 del logger, es logmanager, perdónenme 464 00:18:24,329 --> 00:18:26,210 ustedes, no es 465 00:18:26,210 --> 00:18:28,390 logmanager, si es que 466 00:18:28,390 --> 00:18:30,269 no me tengo que aprender las cosas 467 00:18:30,269 --> 00:18:32,170 que luego se me 468 00:18:32,170 --> 00:18:36,720 olvidan, este ya 469 00:18:36,720 --> 00:18:38,619 sí que es, getlogger 470 00:18:38,619 --> 00:18:39,400 vale 471 00:18:39,400 --> 00:18:43,210 vale 472 00:18:43,210 --> 00:18:48,119 sigue dando error porque tienes que importar, hijo mío 473 00:18:48,119 --> 00:18:50,019 de verdad, es que os gusta a vosotros 474 00:18:50,019 --> 00:18:52,039 mucho ahí meter 475 00:18:52,039 --> 00:18:54,000 cizaña, eh 476 00:18:54,000 --> 00:18:56,220 sigue dando error 477 00:18:56,220 --> 00:18:58,019 Además no se dice, sigue dando error 478 00:18:58,019 --> 00:19:00,460 Se calla uno y lo arregla como loco 479 00:19:00,460 --> 00:19:03,279 A mí me dice que hay que hacer un casting 480 00:19:03,279 --> 00:19:04,019 Pues a mí me importa 481 00:19:04,019 --> 00:19:04,920 A mí no me importa 482 00:19:04,920 --> 00:19:06,160 Hay que quitar el código 483 00:19:06,160 --> 00:19:11,990 A ver 484 00:19:11,990 --> 00:19:14,670 A ver 485 00:19:14,670 --> 00:19:16,329 Relájese, vale 486 00:19:16,329 --> 00:19:18,990 Vale, pues el logger 487 00:19:18,990 --> 00:19:19,650 Que es este 488 00:19:19,650 --> 00:19:22,069 El logger que es este 489 00:19:22,069 --> 00:19:24,990 Es el objeto que es capaz de mandar logs 490 00:19:24,990 --> 00:19:25,710 Cuando uno quiera 491 00:19:25,710 --> 00:19:28,910 entonces, ¿por qué he puesto aquí yo el nombre 492 00:19:28,910 --> 00:19:29,549 de esta clase? 493 00:19:30,730 --> 00:19:32,829 porque este objeto logger 494 00:19:32,829 --> 00:19:34,829 puede haber uno por clase, mi aplicación 495 00:19:34,829 --> 00:19:36,789 tendrá muchas clases, puede haber uno 496 00:19:36,789 --> 00:19:39,009 por clase o uno 497 00:19:39,009 --> 00:19:40,589 para todos 498 00:19:40,589 --> 00:19:43,150 ¿vale? podría haber uno para todos 499 00:19:43,150 --> 00:19:44,150 entonces 500 00:19:44,150 --> 00:19:46,769 si hay uno para 501 00:19:46,769 --> 00:19:48,890 todos, yo no puedo configurar 502 00:19:48,890 --> 00:19:50,529 las clases por separado 503 00:19:50,529 --> 00:19:53,089 pero si hago uno por clase 504 00:19:53,089 --> 00:19:54,769 puedo configurar cada clase por 505 00:19:54,769 --> 00:19:56,569 separado. Ahora veremos qué significa esto de 506 00:19:56,569 --> 00:19:57,890 configurar la jaula separado. 507 00:19:58,650 --> 00:20:00,369 Vale, pues yo quiero mandar mi primer 508 00:20:00,369 --> 00:20:02,349 log, que es este. 509 00:20:04,960 --> 00:20:06,460 Que es, ahora, 510 00:20:07,259 --> 00:20:08,299 ¿qué métodos tiene 511 00:20:08,299 --> 00:20:10,420 el logger? Pues tiene 512 00:20:10,420 --> 00:20:12,380 un montón, pero 513 00:20:12,380 --> 00:20:14,140 tiene unos 514 00:20:14,140 --> 00:20:15,660 interesantes que son, 515 00:20:17,059 --> 00:20:18,140 vamos a poner primero 516 00:20:18,140 --> 00:20:19,420 un debug normal. 517 00:20:20,980 --> 00:20:21,500 Espera, a ver. 518 00:20:22,059 --> 00:20:23,380 No, espera, voy a ver un tracé. 519 00:20:24,380 --> 00:20:26,259 Espera, vamos a ponerle un tracé 520 00:20:26,259 --> 00:20:28,920 Un mensajito, un tracestream 521 00:20:28,920 --> 00:20:33,619 Ahora, vale 522 00:20:33,619 --> 00:20:41,039 Arrancando aplicación 523 00:20:41,039 --> 00:20:42,220 Vale 524 00:20:42,220 --> 00:20:44,660 Y podría hacer también 525 00:20:44,660 --> 00:20:47,420 Ahora explicamos lo que es esto 526 00:20:47,420 --> 00:20:49,940 Ahora, ahora lo, sí 527 00:20:49,940 --> 00:20:50,700 Ahora lo 528 00:20:50,700 --> 00:20:53,119 Arrancando aplicación 529 00:21:08,680 --> 00:21:38,559 Ahora voy a cambiar esto, debug, después del debug tenemos info, después de info creo que viene one, después de one pondríamos error, vale, pues ¿qué es esto que he hecho yo aquí? 530 00:21:46,000 --> 00:21:47,339 no exactamente 531 00:21:47,339 --> 00:21:50,380 no exactamente 532 00:21:50,380 --> 00:21:51,539 a ver 533 00:21:51,539 --> 00:21:52,660 con esto 534 00:21:52,660 --> 00:21:53,900 lo que le digo es 535 00:21:53,900 --> 00:21:54,960 al logger 536 00:21:54,960 --> 00:21:56,400 que me envíe un log 537 00:21:56,400 --> 00:21:58,039 ¿a dónde? 538 00:21:58,440 --> 00:21:59,539 a un fichero de la consola 539 00:21:59,539 --> 00:22:00,259 todavía no sabemos 540 00:22:00,259 --> 00:22:01,240 por qué es que no hemos hecho 541 00:22:01,240 --> 00:22:02,539 el fichero de configuración 542 00:22:02,539 --> 00:22:03,960 el xml famoso 543 00:22:03,960 --> 00:22:04,519 o el json 544 00:22:04,519 --> 00:22:05,140 no lo hemos hecho 545 00:22:05,140 --> 00:22:06,099 todavía no sabemos 546 00:22:06,099 --> 00:22:06,779 dónde lo mandará 547 00:22:06,779 --> 00:22:08,819 pero él manda un mensaje 548 00:22:08,819 --> 00:22:10,740 ¿por qué hay diferentes métodos 549 00:22:10,740 --> 00:22:11,700 para enviar un mensaje? 550 00:22:12,640 --> 00:22:14,339 porque el mensaje es el mismo 551 00:22:14,339 --> 00:22:15,900 pero tu aplicación 552 00:22:15,900 --> 00:22:18,019 puede decidir en qué nivel 553 00:22:18,019 --> 00:22:20,039 de tu fase 554 00:22:20,039 --> 00:22:21,079 de desarrollo estás 555 00:22:21,079 --> 00:22:24,099 entonces, hay seis niveles 556 00:22:24,099 --> 00:22:25,920 el de 557 00:22:25,920 --> 00:22:27,420 traza, que es cuando lo quieres 558 00:22:27,420 --> 00:22:29,579 estás en un nivel en el cual te interesa 559 00:22:29,579 --> 00:22:31,839 todo, el de 560 00:22:31,839 --> 00:22:33,579 dibujo, estás en nivel de depuración 561 00:22:33,579 --> 00:22:34,980 te interesa todo, pero no tanto 562 00:22:34,980 --> 00:22:37,740 el de info, cuando ya estás 563 00:22:37,740 --> 00:22:39,779 el nivel de info 564 00:22:39,779 --> 00:22:41,420 es cuando ya la aplicación está en explotación 565 00:22:41,420 --> 00:22:42,500 ahora vemos qué significa 566 00:22:42,500 --> 00:22:44,940 el nivel de aviso, el de error 567 00:22:44,940 --> 00:22:46,839 y el de fatal, que es la cagado. 568 00:22:46,980 --> 00:22:48,839 Entonces, tú puedes 569 00:22:48,839 --> 00:22:50,460 configurar tu herramienta log 570 00:22:50,460 --> 00:22:52,740 a través del fichero de configuración 571 00:22:52,740 --> 00:22:54,420 xml, como lo configuraremos, 572 00:22:54,960 --> 00:22:56,740 la puedes configurar a través de ese 573 00:22:56,740 --> 00:22:58,720 fichero xml para que 574 00:22:58,720 --> 00:23:00,460 esté en alguno de estos niveles 575 00:23:00,460 --> 00:23:01,660 en el que tú quieras. 576 00:23:02,799 --> 00:23:04,519 Entonces, yo aquí dejo estos 577 00:23:04,519 --> 00:23:05,279 seis mensajes. 578 00:23:06,200 --> 00:23:08,839 Y yo pongo, a través de mi fichero xml, 579 00:23:08,839 --> 00:23:10,779 lo pongo, voy a configurarme 580 00:23:10,779 --> 00:23:12,339 ahora mismo en nivel trazo. 581 00:23:12,900 --> 00:23:13,759 ¿Eso qué significa? 582 00:23:13,759 --> 00:23:15,759 que el logger va a enviar 583 00:23:15,759 --> 00:23:18,059 los de traza y todos 584 00:23:18,059 --> 00:23:20,200 los superiores. Este es el más bajo, 585 00:23:20,319 --> 00:23:22,000 este viene después, este es 586 00:23:22,000 --> 00:23:23,279 un nivel superior, este y este. 587 00:23:23,880 --> 00:23:25,819 Sin embargo, yo ahora ya no estoy en fase 588 00:23:25,819 --> 00:23:27,779 de desarrollo de mi aplicación 589 00:23:27,779 --> 00:23:30,259 y no quiero enviarlos de traza. 590 00:23:30,359 --> 00:23:31,960 Esos no quiero. ¿Vengo 591 00:23:31,960 --> 00:23:33,460 a la aplicación a borrarlos? No. 592 00:23:33,839 --> 00:23:35,960 Venir al código a cambiar cosas, eso es justo lo que no 593 00:23:35,960 --> 00:23:37,940 queremos. Me voy a mi aplicación 594 00:23:37,940 --> 00:23:39,839 de configuración, perdón, 595 00:23:39,920 --> 00:23:41,920 me voy al XML y le digo, ya no 596 00:23:41,920 --> 00:23:44,099 estoy en nivel de traza. Súbeme a nivel 597 00:23:44,099 --> 00:23:46,099 de debug. Le pongo a debug. Con lo cual 598 00:23:46,099 --> 00:23:47,359 este sigue estando 599 00:23:47,359 --> 00:23:49,920 en esta línea de código. Pero ya 600 00:23:49,920 --> 00:23:51,980 el logger, como ve en la configuración 601 00:23:51,980 --> 00:23:53,339 que tú estás en nivel de debug, 602 00:23:53,839 --> 00:23:56,079 este no lo envía. Solo envía 603 00:23:56,079 --> 00:23:58,000 los de debug y superiores. 604 00:23:58,500 --> 00:23:59,579 Que ya estás 605 00:23:59,579 --> 00:24:02,039 en un nivel que ya los detalles te dan igual. 606 00:24:02,440 --> 00:24:04,059 Y oye, yo no quiero ni avisos. 607 00:24:04,740 --> 00:24:05,640 Pones en el XML 608 00:24:05,640 --> 00:24:07,759 tu nivel de log a error. 609 00:24:08,680 --> 00:24:09,839 Entonces, aunque estos 610 00:24:09,839 --> 00:24:11,380 sigan estando en la aplicación, 611 00:24:11,920 --> 00:24:14,880 solamente los va a enviar 612 00:24:14,880 --> 00:24:17,460 los que sean de error y de fatal 613 00:24:17,460 --> 00:24:19,220 solo, entonces estos nunca 614 00:24:19,220 --> 00:24:21,319 los quitamos, porque en la fase 615 00:24:21,319 --> 00:24:22,859 de explotación de la aplicación 616 00:24:22,859 --> 00:24:25,180 si hay errores, queremos que se 617 00:24:25,180 --> 00:24:27,299 registren, pero no vamos 618 00:24:27,299 --> 00:24:29,460 a querer que se registren todos los avisos 619 00:24:29,460 --> 00:24:31,240 las depuraciones, porque nos 620 00:24:31,240 --> 00:24:32,880 quedarían los archivos de logs enormes 621 00:24:32,880 --> 00:24:35,259 y el pobre técnico se volvería loco 622 00:24:35,259 --> 00:24:37,099 pero cuando estamos todavía 623 00:24:37,099 --> 00:24:39,299 depurando la aplicación, si queremos 624 00:24:39,299 --> 00:24:41,119 que llegue todo, para tenerlo todo 625 00:24:41,119 --> 00:24:43,059 muy detallado. Entonces, ahí pondríamos en el 626 00:24:43,059 --> 00:24:45,359 XML que el nivel de 627 00:24:45,359 --> 00:24:47,420 log quiero que sea este, por ejemplo. 628 00:24:47,660 --> 00:24:48,920 O este. ¿Vale? 629 00:24:49,059 --> 00:24:51,200 Pero en el código no lo cambiamos. En el código 630 00:24:51,200 --> 00:24:53,160 todos los mensajes que 631 00:24:53,160 --> 00:24:55,119 uno ponga, mejor. Estos serían como los 632 00:24:55,119 --> 00:24:57,039 system out. Todos los que pongas 633 00:24:57,039 --> 00:24:58,259 en cualquier sitio, fenomenal. 634 00:24:59,119 --> 00:25:00,299 Esos nunca los vas a quitar. 635 00:25:01,000 --> 00:25:02,460 Luego tú ya lo que haces en el XML 636 00:25:02,460 --> 00:25:05,079 es bajar el nivel y decidir cuáles 637 00:25:05,079 --> 00:25:06,920 se van a ejecutar realmente 638 00:25:06,920 --> 00:25:08,619 y cuáles no. ¿Vale? 639 00:25:08,619 --> 00:25:10,420 Y al final los metes en los 640 00:25:10,420 --> 00:25:13,140 Claro, claro 641 00:25:13,140 --> 00:25:15,779 Efectivamente, en cualquier punto que quieras dejar registro 642 00:25:15,779 --> 00:25:17,680 De aquí ha pasado esto, aquí no sé qué, en cualquier lado 643 00:25:17,680 --> 00:25:20,619 Entonces, nosotros ahora no tenemos fichero de configuración 644 00:25:20,619 --> 00:25:21,680 Pero una 645 00:25:21,680 --> 00:25:23,400 Si log4j 646 00:25:23,400 --> 00:25:24,980 Cuando arranca 647 00:25:24,980 --> 00:25:28,519 Ve que no tiene fichero de configuración 648 00:25:28,519 --> 00:25:30,859 Se configura por defecto 649 00:25:30,859 --> 00:25:31,680 O debería 650 00:25:31,680 --> 00:25:34,079 No sé esta nueva versión 651 00:25:34,079 --> 00:25:36,839 Se configura por defecto 652 00:25:36,839 --> 00:25:37,299 Para que 653 00:25:37,299 --> 00:25:40,099 El error, el nivel se ponga en error 654 00:25:40,099 --> 00:25:43,059 y la salida 655 00:25:43,059 --> 00:25:44,799 de los logs sea solo por consola. 656 00:25:45,480 --> 00:25:46,720 Como no le hemos dado ningún fichero, 657 00:25:47,299 --> 00:25:48,880 entonces vamos a ejecutarlo y tenemos suerte 658 00:25:48,880 --> 00:25:51,099 y con las dependencias que hemos 659 00:25:51,099 --> 00:25:53,319 puesto, esto nos funciona. 660 00:25:59,039 --> 00:25:59,519 Magnífico. 661 00:25:59,599 --> 00:26:00,859 Ha pasado lo que yo preveía 662 00:26:00,859 --> 00:26:02,740 que pasara, menos mal, porque si no... 663 00:26:03,539 --> 00:26:04,759 Claro, ha enviado solo 664 00:26:04,759 --> 00:26:06,660 estos dos, porque por 665 00:26:06,660 --> 00:26:08,819 defecto él se configura a nivel error. 666 00:26:09,059 --> 00:26:10,880 Como no he encontrado ningún fichero de configuración, 667 00:26:10,880 --> 00:26:12,720 estos los ha ignorado 668 00:26:12,720 --> 00:26:15,400 y como no le he configurado 669 00:26:15,400 --> 00:26:17,319 ningún fichero ni nada, me lo ha sacado por 670 00:26:17,319 --> 00:26:19,420 console y me lo ha sacado 671 00:26:19,420 --> 00:26:21,759 en un formato por defecto 672 00:26:21,759 --> 00:26:23,579 este formato lo podemos cambiar 673 00:26:23,579 --> 00:26:25,539 ¿vale? si queremos tener el fichero 674 00:26:25,539 --> 00:26:26,200 de configuración 675 00:26:26,200 --> 00:26:27,720 vale 676 00:26:27,720 --> 00:26:33,569 de nuevo 677 00:26:33,569 --> 00:26:36,910 la ventaja que tiene esto 678 00:26:36,910 --> 00:26:38,809 es que no tenemos 679 00:26:38,809 --> 00:26:40,529 que entrar al código a cambiar nada 680 00:26:40,529 --> 00:26:42,470 si nosotros depuráramos con los ISO 681 00:26:42,470 --> 00:26:44,930 menudo desastre, cuando yo ya llevo la aplicación 682 00:26:44,930 --> 00:26:46,690 a producción, tendría que entrar 683 00:26:46,690 --> 00:26:48,369 en el código, quitar los ISO 684 00:26:48,369 --> 00:26:51,069 para que no me salgan en la consola 685 00:26:51,069 --> 00:26:52,849 cuando ya la aplicación está ejecutando 686 00:26:52,849 --> 00:26:54,029 claro, sin embargo aquí 687 00:26:54,029 --> 00:26:56,529 yo el código no lo voy a tocar 688 00:26:56,529 --> 00:26:58,970 claro 689 00:26:58,970 --> 00:27:00,990 en el archivo de configuración 690 00:27:00,990 --> 00:27:02,829 lo cambiamos para que ya no salga por consola 691 00:27:02,829 --> 00:27:03,950 todo se hace por configuración 692 00:27:03,950 --> 00:27:06,710 entonces en el log4j original 693 00:27:06,710 --> 00:27:10,849 si tú ibas al fichero de configuración 694 00:27:10,849 --> 00:27:11,710 al que todavía no tenemos 695 00:27:11,710 --> 00:27:13,269 y le cambiabas algo 696 00:27:13,269 --> 00:27:17,190 pues tenías que desplegar 697 00:27:17,190 --> 00:27:18,630 la aplicación otra vez 698 00:27:18,630 --> 00:27:20,309 no tocar el código, eso no 699 00:27:20,309 --> 00:27:23,230 pero tenías que rearrancar la aplicación 700 00:27:23,230 --> 00:27:25,569 para que se configurara con los nuevos cambios 701 00:27:25,569 --> 00:27:26,990 eso es un rollo 702 00:27:26,990 --> 00:27:29,309 cada vez que cambias un fichero de configuración 703 00:27:29,309 --> 00:27:30,710 sea XML, Properties 704 00:27:30,710 --> 00:27:32,569 tener que reiniciar la aplicación 705 00:27:32,569 --> 00:27:33,990 para que se cojan los nuevos cambios 706 00:27:33,990 --> 00:27:35,329 pues es un rollo 707 00:27:35,329 --> 00:27:48,869 Entonces, las versiones actuales de los frameworks lo que permiten es que ese propio framework, cada ciertos segundos que tú lo configuras, va mirando a ver si tiene que recargar algo. 708 00:27:50,089 --> 00:27:57,609 Pues, esa es una ventaja que tienen los 4J2, que tú cambias algo en el fichero XML y no tienes que preocuparte de reiniciar la aplicación. 709 00:27:57,609 --> 00:28:00,230 el propio log4jl 710 00:28:00,230 --> 00:28:01,609 tiene ahí su hilo paralelo 711 00:28:01,609 --> 00:28:03,970 que cada cierto tiempo que tú configuras 712 00:28:03,970 --> 00:28:06,009 también el fecho de configuración, cada 10 segundos 713 00:28:06,009 --> 00:28:08,349 cada 20, cada 15, cada 3 minutos 714 00:28:08,349 --> 00:28:10,069 está ahí, has cambiado 715 00:28:10,069 --> 00:28:11,829 has cambiado, te actualiza 716 00:28:11,829 --> 00:28:12,609 ¿vale? 717 00:28:13,930 --> 00:28:15,569 así que nos despreocupamos 718 00:28:15,569 --> 00:28:17,150 que queremos cambiar el log 719 00:28:17,150 --> 00:28:19,450 te vas al xml, lo cambias 720 00:28:19,450 --> 00:28:21,890 y ya está, no tienes que hacer nada 721 00:28:21,890 --> 00:28:23,049 en la aplicación, ¿vale? 722 00:28:23,710 --> 00:28:25,930 bueno, entonces en un caso real 723 00:28:25,930 --> 00:28:27,430 no queremos mandarlo a consola 724 00:28:27,430 --> 00:28:29,589 queremos mandarle un fichero, pues entonces 725 00:28:29,589 --> 00:28:30,910 ahora ya sí que tenemos que 726 00:28:30,910 --> 00:28:32,930 ponerle un fichero de configuración 727 00:28:32,930 --> 00:28:35,430 uno se aprende cómo se hace ese fichero 728 00:28:35,430 --> 00:28:36,930 imposible, coges uno 729 00:28:36,930 --> 00:28:40,029 que ya está por ahí y lo cascas y lo adaptas 730 00:28:40,029 --> 00:28:40,829 ¿vale? 731 00:28:41,569 --> 00:28:42,009 claro 732 00:28:42,009 --> 00:28:44,269 entonces 733 00:28:44,269 --> 00:28:47,470 podríais coger el mío 734 00:28:47,470 --> 00:28:48,710 que lo subo en un pispas 735 00:28:48,710 --> 00:28:51,470 al aula virtual o podríamos 736 00:28:51,470 --> 00:28:52,710 pedirle uno a ChaGPT 737 00:28:52,710 --> 00:28:55,589 os gusta más ChaGPT 738 00:28:55,589 --> 00:28:56,309 que yo, ¿verdad? 739 00:28:56,309 --> 00:28:57,910 No, pero es por probar. 740 00:28:57,910 --> 00:29:11,430 Ya, venga, vamos a decirle, venga, yo también prefiero pedir su HGPT porque es lo que vais a hacer siempre, ¿no? 741 00:29:12,329 --> 00:29:14,470 Entonces, y así me ahorro subirlo a la ola virtual. 742 00:29:17,450 --> 00:29:21,210 Bueno, lo voy a subir igualmente, pero puede ser. 743 00:29:22,230 --> 00:29:25,549 Venga, ¿qué queréis? ¿Lista de recetas? 744 00:29:26,309 --> 00:29:27,890 O datos jurídicos sobre la historia de España. 745 00:29:29,750 --> 00:29:37,329 ¿Me das un ejemplo de los4j2.xml? 746 00:29:37,910 --> 00:29:40,309 Eso sí, se tiene que llamar así, 747 00:29:40,450 --> 00:29:41,450 nada de cambiarlo de nombre. 748 00:29:42,369 --> 00:29:45,109 Para que los4j2 lo encuentre, 749 00:29:45,890 --> 00:29:47,309 él lo va a buscar por este nombre. 750 00:29:47,910 --> 00:29:50,410 Si es Jason, los4j2.jason. 751 00:29:50,410 --> 00:29:52,529 Si es yaml, los4j2.xml. 752 00:29:52,529 --> 00:29:52,789 Vale. 753 00:29:53,150 --> 00:29:54,089 ¿Me das un ejemplo? 754 00:29:56,309 --> 00:30:22,500 que configure tanto appenders fichero como fichero secuencial como consola y configure 755 00:30:22,500 --> 00:30:27,740 Por separado el logger de una clase. 756 00:30:29,279 --> 00:30:30,539 Venga, ¿me lo das? 757 00:30:31,680 --> 00:30:32,200 Por favor. 758 00:30:35,579 --> 00:30:36,740 Claro que sí, hombre. 759 00:30:39,240 --> 00:30:40,019 Sin rotación. 760 00:30:40,200 --> 00:30:41,519 Uy, yo lo quería con rotación. 761 00:30:41,740 --> 00:30:42,200 Qué fallo. 762 00:30:42,279 --> 00:30:43,099 Lo vemos con rotación. 763 00:30:43,960 --> 00:30:45,259 Pídeselo con rotación, hombre. 764 00:30:46,599 --> 00:30:47,039 Vale. 765 00:30:47,240 --> 00:30:48,019 De la rotación. 766 00:30:48,359 --> 00:30:48,680 Venga. 767 00:30:48,859 --> 00:30:49,200 ¿Para qué? 768 00:30:49,440 --> 00:30:51,920 Vamos a copiarlo y lo cascamos en nuestro... 769 00:30:51,920 --> 00:30:52,640 Ahora, ahora lo vemos. 770 00:30:52,640 --> 00:30:56,200 a ver si yo sé interpretar 771 00:30:56,200 --> 00:30:57,119 lo que nos ha generado 772 00:30:57,119 --> 00:30:57,960 pero bueno 773 00:30:57,960 --> 00:31:02,180 sí 774 00:31:02,180 --> 00:31:10,970 aquí puedes ver el misterio secuencial 775 00:31:10,970 --> 00:31:13,049 rotativo, así te saca 776 00:31:13,049 --> 00:31:13,849 algo más guay 777 00:31:13,849 --> 00:31:18,809 y se vuelve loco 778 00:31:18,809 --> 00:31:20,430 como el cubo 779 00:31:20,430 --> 00:31:21,509 en videojuego 780 00:31:21,509 --> 00:31:29,150 vale, pues entonces 781 00:31:29,150 --> 00:31:31,730 vamos a copiarlo 782 00:31:31,730 --> 00:31:41,349 venga, pues ya está 783 00:31:41,349 --> 00:31:42,890 este mismo que nos ha generado 784 00:31:42,890 --> 00:31:45,190 ¿dónde lo metemos? 785 00:31:45,390 --> 00:31:47,009 en recursos, para que 786 00:31:47,009 --> 00:31:49,190 la herramienta los4j lo encuentre 787 00:31:49,190 --> 00:31:51,130 va a arrancar, tiene que estar 788 00:31:51,130 --> 00:31:52,750 en una ruta del classpath 789 00:31:52,750 --> 00:31:55,789 donde están todas las clases accesibles 790 00:31:55,789 --> 00:31:57,529 para la máquina virtual 791 00:31:57,529 --> 00:31:59,809 resources es una ruta 792 00:31:59,809 --> 00:32:01,650 del classpad, pues ese es el sitio 793 00:32:01,650 --> 00:32:03,569 maravilloso para poner los ficheros de configuración 794 00:32:03,569 --> 00:32:05,789 ¿que era con rotación secuencia o algo así? 795 00:32:06,269 --> 00:32:07,890 nada, con cualquier cosa, da igual 796 00:32:07,890 --> 00:32:09,849 entonces vamos a crear 797 00:32:09,849 --> 00:32:10,950 aquí un nuevo fichero 798 00:32:10,950 --> 00:32:14,519 que va a ser 799 00:32:14,519 --> 00:32:19,480 log4j2.xml 800 00:32:19,480 --> 00:32:25,829 y vamos a 801 00:32:25,829 --> 00:32:27,369 pegar lo que nos ha dado 802 00:32:27,369 --> 00:32:30,349 Que no sale nada rojo 803 00:32:30,349 --> 00:32:31,549 Qué suerte hemos tenido 804 00:32:31,549 --> 00:32:38,650 Dentro de la carpeta resources 805 00:32:38,650 --> 00:32:40,230 Te creas un archivo 806 00:32:40,230 --> 00:32:42,430 De nombre los4j2xml 807 00:32:42,430 --> 00:32:44,509 Y pegas el código 808 00:32:44,509 --> 00:32:45,549 Que te ha dado ChagPT 809 00:32:45,549 --> 00:32:51,559 Podemos cambiar de guía en algún momento 810 00:32:51,559 --> 00:32:52,859 Hay que usar ChagPT 811 00:32:52,859 --> 00:32:55,599 Yo qué sé, si yo solo uso esa 812 00:32:55,599 --> 00:32:57,539 No lo sé, pero hay algunas chinas 813 00:32:57,539 --> 00:32:58,619 Por ahí muy chulas, ¿no? 814 00:32:58,619 --> 00:32:59,039 Dicen 815 00:32:59,039 --> 00:33:00,599 ¿Cuál? 816 00:33:04,339 --> 00:33:05,819 ¿Cuál recomendáis vosotros? 817 00:33:07,019 --> 00:33:07,819 ¿Ya GPT? 818 00:33:09,759 --> 00:33:10,240 Vale 819 00:33:10,240 --> 00:33:18,480 Bueno, para cosas de desarrollo 820 00:33:18,480 --> 00:33:20,259 No sé cuál será mejor, yo solo he usado esta 821 00:33:20,259 --> 00:33:21,700 Bueno, Gemini alguna vez 822 00:33:21,700 --> 00:33:23,019 Vale, pues a ver 823 00:33:23,019 --> 00:33:27,039 Vamos a ver 824 00:33:27,039 --> 00:33:29,660 aquí hay 825 00:33:29,660 --> 00:33:31,200 dos cosas básicas 826 00:33:31,200 --> 00:33:33,500 los appenders 827 00:33:33,500 --> 00:33:36,019 y los loggers 828 00:33:36,019 --> 00:33:37,880 y luego habría una cosa 829 00:33:37,880 --> 00:33:39,859 que son los layouts, pero creo que no nos han metido 830 00:33:39,859 --> 00:33:41,119 layouts ahí, es igual 831 00:33:41,119 --> 00:33:45,339 new file, botón derecho, new file 832 00:33:45,339 --> 00:33:48,359 vale, ¿qué son los appenders? 833 00:33:50,559 --> 00:33:52,059 los appenders son 834 00:33:52,059 --> 00:33:54,160 los sitios 835 00:33:54,160 --> 00:33:55,900 por donde los loggers 836 00:33:55,900 --> 00:33:57,619 Pueden enviar mensajes 837 00:33:57,619 --> 00:34:00,099 Por defecto el appender 838 00:34:00,099 --> 00:34:02,140 Si estaba sin configurar 839 00:34:02,140 --> 00:34:03,319 Hemos visto que es la consola 840 00:34:03,319 --> 00:34:04,119 Por defecto 841 00:34:04,119 --> 00:34:06,940 Pero aquí en el blog 4j2xml 842 00:34:06,940 --> 00:34:09,400 Ponemos todos los appenders que queramos 843 00:34:09,400 --> 00:34:11,400 Aquí hemos 844 00:34:11,400 --> 00:34:12,639 Aquí él me ha hecho 845 00:34:12,639 --> 00:34:14,940 Tres appenders 846 00:34:14,940 --> 00:34:17,420 Un appender consola 847 00:34:17,420 --> 00:34:18,980 Para sacar por consola 848 00:34:18,980 --> 00:34:21,280 Al que le da el nombre consola 849 00:34:21,280 --> 00:34:23,900 Y le da este aspecto 850 00:34:23,900 --> 00:34:26,420 le podéis cambiar el aspecto 851 00:34:26,420 --> 00:34:28,000 y en lugar de que me salga el año 852 00:34:28,000 --> 00:34:30,099 con cuatro cifras que es 853 00:34:30,099 --> 00:34:32,039 que es muy largo, los segundos 854 00:34:32,039 --> 00:34:33,460 tampoco me interesan tanto, 855 00:34:34,099 --> 00:34:36,340 aunque yo no sé si este lo entiende, horas, minutos, 856 00:34:37,280 --> 00:34:38,400 yo que sé, uno cambia 857 00:34:38,400 --> 00:34:39,440 y hace aquí lo que le dé la gana. 858 00:34:41,320 --> 00:34:41,719 Vale. 859 00:34:42,739 --> 00:34:44,559 El nivel, el mensajito, 860 00:34:44,679 --> 00:34:46,039 esta es la variable mensajito 861 00:34:46,039 --> 00:34:48,179 del parámetro, del método log. 862 00:34:48,840 --> 00:34:49,199 Bueno. 863 00:34:50,800 --> 00:34:52,440 Normalmente uno aquí no cambia nada y ya está. 864 00:34:52,440 --> 00:34:54,199 ¿Qué otros posibles 865 00:34:54,199 --> 00:34:55,800 Appenders me ha configurado? 866 00:34:57,960 --> 00:34:58,800 El Appender 867 00:34:58,800 --> 00:35:00,239 Ah, pues sí que me lo ha puesto rotativo 868 00:35:00,239 --> 00:35:02,400 Espera, vamos a pasar 869 00:35:02,400 --> 00:35:03,920 Primero del rolling file, vamos a este 870 00:35:03,920 --> 00:35:06,059 El fichero 871 00:35:06,059 --> 00:35:07,480 Un fichero normal 872 00:35:07,480 --> 00:35:09,920 Lo ha llamado fichero secuencial 873 00:35:09,920 --> 00:35:10,699 Fichero normal 874 00:35:10,699 --> 00:35:13,400 ¿Dónde se va a encontrar? 875 00:35:14,199 --> 00:35:15,960 Él me ha dicho en la carpeta logs 876 00:35:15,960 --> 00:35:18,400 Tendrá, log4j 877 00:35:18,400 --> 00:35:20,500 La creará, la primera vez que lo usamos la creará 878 00:35:20,500 --> 00:35:22,579 pues en la carpeta logs 879 00:35:22,579 --> 00:35:24,619 secuencial.log 880 00:35:24,619 --> 00:35:25,420 se va a llamar 881 00:35:25,420 --> 00:35:27,980 luego en el archivo secuencial.log 882 00:35:27,980 --> 00:35:29,199 es donde va a meter esos logs 883 00:35:29,199 --> 00:35:31,420 ¿vale? dentro de 884 00:35:31,420 --> 00:35:33,039 la carpeta logs 885 00:35:33,039 --> 00:35:36,980 lo va a meter y ahí hay detallitos de aspecto 886 00:35:36,980 --> 00:35:37,980 append 887 00:35:37,980 --> 00:35:39,119 vale 888 00:35:39,119 --> 00:35:41,059 append true está claro 889 00:35:41,059 --> 00:35:43,159 te los voy añadiendo 890 00:35:43,159 --> 00:35:45,199 te voy sobre escribiendo 891 00:35:45,199 --> 00:35:46,159 no menos añadelos 892 00:35:46,159 --> 00:35:48,119 ¿vale? bueno 893 00:35:48,119 --> 00:35:51,300 y el otro posible 894 00:35:51,300 --> 00:35:53,260 appender, el otro tipo posible 895 00:35:53,260 --> 00:35:54,960 de appender, es este 896 00:35:54,960 --> 00:35:55,519 rotativo 897 00:35:55,519 --> 00:35:59,239 porque claro, si ponemos como appender 898 00:35:59,239 --> 00:36:01,059 un fichero normal, es que 899 00:36:01,059 --> 00:36:03,179 ese fichero llegará a un momento dentro de dos 900 00:36:03,179 --> 00:36:05,360 meses que sea gigante 901 00:36:05,360 --> 00:36:06,360 ¿no? 902 00:36:06,639 --> 00:36:08,900 porque todos los días, enviando todos los días 903 00:36:08,900 --> 00:36:11,019 enviando, al cabo de dos meses 904 00:36:11,019 --> 00:36:12,579 ese fichero es gigantesco 905 00:36:12,579 --> 00:36:15,280 entonces podemos hacer un appender que sea 906 00:36:15,280 --> 00:36:16,780 fichero rotativo 907 00:36:16,780 --> 00:36:18,219 que 908 00:36:18,219 --> 00:36:21,039 se va a llamar así el primero 909 00:36:21,039 --> 00:36:22,260 pero luego 910 00:36:22,260 --> 00:36:24,920 cada vez que te saltes de 10 megas 911 00:36:24,920 --> 00:36:27,199 o la cantidad que uno le quiera poner aquí 912 00:36:27,199 --> 00:36:28,300 2 gigas 913 00:36:28,300 --> 00:36:30,780 o cada vez que te saltes de día 914 00:36:30,780 --> 00:36:32,840 aunque eso no viene por defecto 915 00:36:32,840 --> 00:36:35,079 ¡Uy, qué listo! Me lo pone en comentarios 916 00:36:35,079 --> 00:36:37,239 La verdad es que es súper útil este 917 00:36:37,239 --> 00:36:38,599 Nos lo ha dicho 918 00:36:38,599 --> 00:36:41,179 Cada vez que te saltes de día 919 00:36:41,179 --> 00:36:43,360 o cada vez que te saltes de este tamaño 920 00:36:43,360 --> 00:36:45,400 él te crea un fichero 921 00:36:45,400 --> 00:36:45,900 nuevo 922 00:36:45,900 --> 00:36:48,579 Con el nombre 923 00:36:48,579 --> 00:36:50,000 Aplicación.log 924 00:36:50,000 --> 00:36:51,019 Pero al que le añade 925 00:36:51,019 --> 00:36:53,300 Lo que hayamos puesto aquí 926 00:36:53,300 --> 00:36:54,199 El año 927 00:36:54,199 --> 00:36:58,179 El nombre de los ficheros que te va 928 00:36:58,179 --> 00:36:59,780 Creando 929 00:36:59,780 --> 00:37:01,400 Tendrán este formato 930 00:37:01,400 --> 00:37:03,679 Si nos parece muy feo 931 00:37:03,679 --> 00:37:04,460 Se lo cambiamos 932 00:37:04,460 --> 00:37:06,980 Entonces el rolling file mejor 933 00:37:06,980 --> 00:37:08,280 Porque así no tenemos 934 00:37:08,280 --> 00:37:11,380 Un fichero enorme 935 00:37:11,380 --> 00:37:13,400 Vale, estos son los posibles 936 00:37:13,400 --> 00:37:15,360 Los posibles a perder 937 00:37:15,360 --> 00:37:17,239 ahora otra cosa son 938 00:37:17,239 --> 00:37:19,599 los logger 939 00:37:19,599 --> 00:37:21,380 a que aprender van a ir 940 00:37:21,380 --> 00:37:23,019 bueno pues 941 00:37:23,019 --> 00:37:25,699 logger, hay logger 942 00:37:25,699 --> 00:37:26,400 por clase 943 00:37:26,400 --> 00:37:28,960 veis, este logger 944 00:37:28,960 --> 00:37:31,679 voy a borrar esto, este es el logger 945 00:37:31,679 --> 00:37:33,199 de la clase main 946 00:37:33,199 --> 00:37:35,300 este es el logger de mi clase main 947 00:37:35,300 --> 00:37:38,099 si yo tengo más clases 948 00:37:38,099 --> 00:37:40,079 habrá logger de sus propias clases 949 00:37:40,079 --> 00:37:42,019 ¿vale? pero luego está 950 00:37:42,019 --> 00:37:43,119 un logger general 951 00:37:43,119 --> 00:37:45,579 un superlogger, logger máximo, 952 00:37:46,239 --> 00:37:47,619 que es el que manda 953 00:37:47,619 --> 00:37:49,659 en todas. Pues ese 954 00:37:49,659 --> 00:37:51,500 logger máximo se 955 00:37:51,500 --> 00:37:53,019 configura aquí abajo 956 00:37:53,019 --> 00:37:55,000 o debería 957 00:37:55,000 --> 00:37:57,579 configurarse aquí 958 00:37:57,579 --> 00:37:59,800 abajo, aquí. 959 00:38:00,519 --> 00:38:01,460 Donde pone 960 00:38:01,460 --> 00:38:03,059 logger raíz. Entonces, 961 00:38:04,139 --> 00:38:05,340 este es el superlogger. 962 00:38:06,780 --> 00:38:07,920 Aquí ponemos 963 00:38:07,920 --> 00:38:09,539 el nivel que queremos. 964 00:38:10,860 --> 00:38:11,579 Como hemos puesto 965 00:38:11,579 --> 00:38:13,639 info, pues 966 00:38:13,639 --> 00:38:15,219 solo se van a salir de info adelante. 967 00:38:15,340 --> 00:38:17,480 El trace y el debug no van a salir, pero esto lo 968 00:38:17,480 --> 00:38:18,579 cambiamos cuando nos dé la gana. 969 00:38:19,500 --> 00:38:21,380 Y aquí ponemos a dónde 970 00:38:21,380 --> 00:38:23,539 queremos que salgan esos logos. 971 00:38:24,039 --> 00:38:25,360 ¿Hay algún método desde dentro 972 00:38:25,360 --> 00:38:29,280 que te cambie el fichero de configuración? 973 00:38:30,480 --> 00:38:31,119 Es que 974 00:38:31,119 --> 00:38:33,460 justo sería lo contrario. 975 00:38:33,659 --> 00:38:35,079 Entonces, cambiar un fichero de configuración 976 00:38:35,079 --> 00:38:37,219 desde el código es justo lo 977 00:38:37,219 --> 00:38:38,579 contrario a lo que perseguimos. 978 00:38:40,219 --> 00:38:40,619 Vale. 979 00:38:40,699 --> 00:38:42,920 A lo mejor en una parte del programa te interesa que tenga más 980 00:38:42,920 --> 00:38:47,880 Bueno, pero es que tú entonces haces 981 00:38:47,880 --> 00:38:51,260 No lo sé 982 00:38:51,260 --> 00:38:55,159 O sea, que una parte del programa 983 00:38:55,159 --> 00:38:57,460 Use un log4 y otra parte use otro 984 00:38:57,460 --> 00:39:01,559 Si se puede, no lo he visto nunca 985 00:39:01,559 --> 00:39:03,079 Vale, entonces 986 00:39:03,079 --> 00:39:04,539 Aquí uno pone tantos 987 00:39:04,539 --> 00:39:06,019 Appenders como quiera 988 00:39:06,019 --> 00:39:08,980 O sea, los superloggers de todos 989 00:39:08,980 --> 00:39:11,340 Van a ir tanto a consola como a este 990 00:39:11,340 --> 00:39:13,179 como no nos vamos a pasar de 10 megas nunca 991 00:39:13,179 --> 00:39:15,500 ni de día 992 00:39:15,500 --> 00:39:17,300 no vamos a estar aquí mandando logs hasta mañana 993 00:39:17,300 --> 00:39:19,500 para verlo, pues no vamos a ver 994 00:39:19,500 --> 00:39:21,440 el cambio, pero da igual, se va a ver el primer fichero 995 00:39:21,440 --> 00:39:23,480 y ya está. Ahora, este es el 996 00:39:23,480 --> 00:39:25,739 superlogger, pero uno podría 997 00:39:25,739 --> 00:39:27,199 hacer eso ya así 998 00:39:27,199 --> 00:39:29,519 configurar un logger 999 00:39:29,519 --> 00:39:30,940 específico para cada clase 1000 00:39:30,940 --> 00:39:33,480 que eso ya sí que tiene relación con lo que tú me 1001 00:39:33,480 --> 00:39:34,960 estás diciendo, pero de otra manera, que es 1002 00:39:34,960 --> 00:39:37,739 oye, espérate, que yo quiero que mi clase 1003 00:39:37,739 --> 00:39:39,500 que en este caso mi clase 1004 00:39:39,500 --> 00:39:41,900 con dam2.main 1005 00:39:41,900 --> 00:39:43,519 quiero que mi clase funcione 1006 00:39:43,519 --> 00:39:45,639 de otra manera, esta clase, solo esta 1007 00:39:45,639 --> 00:39:47,519 esta me interesa que vaya 1008 00:39:47,519 --> 00:39:49,440 como debug, vale 1009 00:39:49,440 --> 00:39:50,940 pues entonces yo a esta clase 1010 00:39:50,940 --> 00:39:53,820 si quiero, la configuro 1011 00:39:53,820 --> 00:39:54,940 especialmente a ella 1012 00:39:54,940 --> 00:39:55,940 ¿vale? 1013 00:39:57,760 --> 00:39:59,239 claro, entonces 1014 00:39:59,239 --> 00:40:01,559 todos los logger 1015 00:40:01,559 --> 00:40:03,460 de esta, todos los mensajes 1016 00:40:03,460 --> 00:40:05,739 de esta clase, les aplica a este nivel 1017 00:40:05,739 --> 00:40:07,659 mientras que al resto 1018 00:40:07,659 --> 00:40:09,280 les aplicará esto 1019 00:40:09,280 --> 00:40:13,000 y ahí puedes crear varios 1020 00:40:13,000 --> 00:40:13,880 para distintas clases 1021 00:40:13,880 --> 00:40:14,559 puedes crear varios 1022 00:40:14,559 --> 00:40:15,219 de tantos logger 1023 00:40:15,219 --> 00:40:15,699 claro 1024 00:40:15,699 --> 00:40:17,699 como tú puedes hacer 1025 00:40:17,699 --> 00:40:18,760 un logger por clase 1026 00:40:18,760 --> 00:40:20,139 pues puedes hacer 1027 00:40:20,139 --> 00:40:21,199 tantos logger por clase 1028 00:40:21,199 --> 00:40:22,940 y también podríamos hacer 1029 00:40:22,940 --> 00:40:23,880 poner aquí un paquete 1030 00:40:23,880 --> 00:40:25,119 en lugar de una clase 1031 00:40:25,119 --> 00:40:26,239 por ejemplo 1032 00:40:26,239 --> 00:40:26,860 pongo yo aquí 1033 00:40:26,860 --> 00:40:27,480 condandos 1034 00:40:27,480 --> 00:40:28,480 y esto aplica 1035 00:40:28,480 --> 00:40:29,199 a todas las clases 1036 00:40:29,199 --> 00:40:29,840 de ese paquete 1037 00:40:29,840 --> 00:40:31,500 vale, bueno 1038 00:40:31,500 --> 00:40:32,239 esperamos que 1039 00:40:32,239 --> 00:40:32,900 o sea, nos vamos 1040 00:40:32,900 --> 00:40:33,380 que os veo 1041 00:40:33,380 --> 00:40:34,579 con mucha prisa