Si estoy desarrollando una biblioteca Java, ¿es una buena práctica emitir declaraciones de registro desde el código de la biblioteca?
Tener un registro dentro de la biblioteca hará que la depuración y la resolución de problemas sean más transparentes. Sin embargo, por otro lado, no me gusta ensuciar el código de mi biblioteca con declaraciones de registro. ¿Hay alguna implicación de rendimiento a considerar también?
Respuestas:
Si deberías. El uso de una fachada de registro como SLF4J le brinda flexibilidad sin sobrecargar a sus usuarios con un marco de registro particular.
Además, si sus usuarios no incluyen un jar SLF4J (de la guía del usuario ):
Si le preocupan las implicaciones de rendimiento del registro, consulte esta entrada de preguntas frecuentes de SLF4J . La idea es que proporcione parámetros para registrar las declaraciones en lugar de agregarlas a una cadena en línea:
¿SLF4J es otra fachada de registro?
fuente
Sí , debe iniciar sesión desde el código de su biblioteca. No solo lo ayuda a desarrollarse, sino que las personas que usan la biblioteca lo encontrarán útil. Recuerde que siempre puede establecer los niveles de registro para mostrar solo las declaraciones de registro que necesita, y que pueden hacer lo mismo.
Recientemente estaba usando Mybatis , una herramienta ORM de código abierto. Estaba depurando un problema en el que una consulta que pensé que debería haber sido correcta no arrojaba resultados. Era una consulta parametrizada, y como Mybatis tiene un registro dentro de su código de biblioteca, pude activarlo y ver la consulta real que se está ejecutando. Fue fácil decir que cambié dos parámetros. Sin iniciar sesión en la biblioteca, no podría haber encontrado el problema tan rápido.
fuente