Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Con nuestro agente de Java, puede obtener logs in context, que le permite ver el registro de su aplicación en el contexto de sus otros datos New Relic . Para obtener información general sobre esta característica, consulte logs en el contexto APM .
Si está utilizando un framework compatible, tiene dos opciones para configurar el logs en el contexto APM para enviar el registro de su aplicación y vincular metadatos automáticamente a New Relic. Una opción es configurar manualmente una extensión log que decorará su registro y luego podrá reenviárselo a usted mismo. La otra opción es hacer que el agente de Java se encargue automáticamente de decorar y reenviar su registro. El marco soportado para el inicio de logs en el contexto automático incluye:
Log4j1 1.2.17 o superior
Log4j2 2.6 o superior
Iniciar sesión 1.1 o superior
JULIO (java.util.logging) JDK 8+
JBoss Logging 1.3.0.Final a 2.x
Registro de Dropwizard (capturado a través de la instrumentación Logback, consulte el problema conocido a continuación)
Importante
Registro de JBoss
JBoss Logging delega la funcionalidad de decoración local a la instrumentación JUL y, por lo tanto, puede controlarse completamente mediante los siguientes dos módulos de instrumentación:
class_transformer:
com.newrelic.instrumentation.java.logging-jdk8:
enabled:true
com.newrelic.instrumentation.jboss.logging:
enabled:true
Importante
Problema conocido con el registro de Dropwizard
De forma predeterminada, Dropwizard usa Logback para su backend de registro. También enruta todo java.util.logging, Log4j y Apache Commons Uso de registro a través de Logback. Este comportamiento de enrutamiento puede provocar que se informen registros duplicados a New Relic si el agente de Java instrumentó una de estas otras bibliotecas de registro además de instrumentó Logback.
Para evitar informar registros duplicados cuando se utiliza el registro de Dropwizard, se recomienda deshabilitar toda la instrumentación framework de registro excepto Logback. Puede hacer esto en la sección class_transformer del archivo de configuración del agente:
class_transformer:
com.newrelic.instrumentation.logback-classic-1.2:
enabled:true
com.newrelic.instrumentation.apache-log4j-1:
enabled:false
com.newrelic.instrumentation.apache-log4j-2:
enabled:false
com.newrelic.instrumentation.java.logging-jdk8:
enabled:false
com.newrelic.instrumentation.jboss.logging:
enabled:false
Importante
Las versiones del agente 7.7.0 y superiores tienen esta característica habilitada en el archivo de configuración del agente de forma predeterminada.
El agente reenvío de registros provocará un aumento en el consumo de datos cuando se detecte un framework compatible . La cantidad depende de la aplicación y de la cantidad de tronco que produzca. Esta característica se puede desactivar. Consulte Desactivar el registro automático para obtener más información sobre sus opciones.
Si ya cuenta con una solución de reenvío de registros, debe desactivar esta característica.
Si prefiere utilizar su propio reenviador de registros, en lugar de tener el agente de Java forward log, entonces nuestra solución de logs en el contexto manual sería la solución adecuada para decorar su registro con metadatos de contexto de traza.
Este es el enfoque más simple y es una excelente opción para desarrolladores que quizás no tengan acceso o interés en configurar un reenviador de registros, o para cuentas que quieran ver el poder de los registros y otros metadatos de enlace en el contexto de sus aplicaciones. sin muchos gastos generales.
Esta funcionalidad está habilitada de forma predeterminada.
Todo lo que necesita hacer es instalar una versión del agente con capacidades de reenvío de registros (agente de Java 7.6.0 o superior). Si el reenvío está deshabilitado, puede usar esta configuración:
Archivo de configuración (newrelic.yml), con sangría de 2 espacios debajo de la sección común:
Una vez que esta característica está habilitada, también tienes control sobre la cantidad máxima de líneas log enviadas a New Relic cada minuto. El valor predeterminado es 10.000. Si el agente ve más de 10,000 líneas log en una ventana de 60 segundos, se comenzará a muestrear su registro.
Configúrelo en un número más alto para recibir más registros. Configúrelo en un número más bajo para recibir menos registros. Cualquier número entero no negativo es válido.
Sugerencia
Esto se refiere a la cantidad de registros enviados por minuto. Establecer max_samples_stored en un valor inferior a 12 tendrá el efecto de no enviar ningún registro.
Si ya tiene una solución de reenvío de logs y está actualizando su agente para usar el logs en el contexto automático, asegúrese de disable your manual log forwarder. De lo contrario, su aplicación enviará líneas log dobles. Dependiendo de su cuenta, esto podría resultar en una doble facturación. Para obtener más información, siga los procedimientos para desactivar su reenviador de logs específico.
¿Ya tienes un reenviador de logs que te gusta? ¡Te tenemos cubierto! El agente de Java puede decorar su registro con los metadatos de enlace necesarios para brindar acceso a la característica de contexto de inicio de sesión automático, y usted puede enviarlos a New Relic usando su reenviador de registros manual.
Esta opción no debe usarse con el reenvío dentro del agente. El uso de un reenviador de registros externo para enviar registros a New Relic mientras el reenvío en el agente está habilitado hará que su registro se envíe dos veces a New Relic. Dependiendo de su cuenta, esto puede resultar en una facturación doble.
Actualice la configuración de su agente para deshabilitar el reenvío de registros y habilitar la decoración local, luego reinicie el agente para comenzar a decorar su registro.
Archivo de configuración (newrelic.yml), con sangría de 2 espacios debajo de la sección común:
Nuestro decorador agrega cinco atributos a cada mensaje de registro en su archivo de registro de aplicación: entity.guid, hostname, trace.id, span.id y entity.name. Ejemplo:
This is my log message. NR-LINKING|{entity.guid}|{hostname}|{trace.id}|{span.id}|{entity.name}|
Si el mensaje de log está vacío o en blanco, el mensaje de salida también estará vacío. Ejemplo:
El mensaje de log de salida será una cadena vacía.
Algunos atributos pueden estar vacíos si el log ocurrió fuera de una transacción o si no son aplicables al contexto de su aplicación.
¿Te ha ayudado este documento con la instalación?
Asegure sus datos
Su registro puede incluir información confidencial protegida por HIPAA u otros protocolos de cumplimiento. De forma predeterminada, ofuscamos los patrones numéricos que parecen corresponder a elementos como tarjetas de crédito o números de Seguro Social, pero es posible que deba aplicar hash o enmascarar información adicional.
Para más información, consulta nuestra documentación sobre expresión de ofuscación y reglas. Puede hash o enmascarar sus log datos utilizando la New Relic UI o utilizando NerdGraph, nuestra GraphQL.API
Explora tus datos
Para aprovechar al máximo sus datos de registro:
En la páginaAPM Summary, haga clic en su gráfico Web transaction time para ver el registro asociado con un momento específico.
Verifique Errors inbox de su aplicación para ver el registro asociado con sus errores.
Utilice rastreo distribuido para ver el registro asociado a la traza individual.
Explore más datos de registro en su plataforma con nuestra UI de logs.
Configure alertas basadas en la salida log y la gravedad.
Normalmente, su registro comenzará a aparecer menos de un minuto después de habilitar el inicio de logs en el contexto. Consulta la sección Triage > Logs de tu aplicación. Allí también comenzará a ver patrones de registros relacionados con el error.
Si no ve ningún registro de errores o traza, es posible que no haya ninguno para su aplicación. Intente actualizar la página UI o cambie el período de tiempo seleccionado.
Deshabilitar el registro automático
El logs en el contexto APM reenvía automáticamente datos log del agente y está habilitado de forma predeterminada. Esto puede tener un impacto negativo en su seguridad, cumplimiento, facturación o rendimiento del sistema. Para desactivar el registro automático:
En el menú de usuario de la usuario New Relic UI, haga clic Manage your data > Log settings en .
Haga clic en el menú de puntos suspensivos ... en el lado derecho de la fila de la cuenta.
Haga clic en el botón de confirmación para habilitar o deshabilitar y bloquear o desbloquear el registro automático (cuentas principales) o habilitar o deshabilitar solo (cuentas infantiles).
Para obtener más información, o si necesita ajustar la configuración predeterminada, siga los procedimientos para desactivar el registro automático.
Opción de logs en el contexto manual
Antes de que language agente tuviera la capacidad de reenviar y decorar registros, podía utilizar nuestras soluciones manuales para enviar metadatos de enlace.
Esta opción todavía se admite, pero ya no se recomienda. Además, este método requiere que instale un reenviador de registros antes de habilitar el logs en el contexto. Si no tiene un reenviador de registros, la New Relic UI le indicará que utilice nuestro agente de infraestructura.
Si decide utilizar su solución de reenvío de registros existente y luego decide actualizar su agente para usar el logs en el contexto automático, asegúrese de disable your manual log forwarder. De lo contrario, su aplicación enviará líneas log dobles. Dependiendo de su cuenta, esto podría resultar en una doble facturación. Para obtener más información, siga los procedimientos para desactivar su reenviador de registros específico.
Si necesita utilizar el proceso manual para configurar el logs en el contexto para Java, siga estos pasos:
Asegúrate de haber configurado el inicio de sesión en New Relic. Esto incluye la configuración de un reenviador de registros compatible que recopile su registro de aplicación y extienda los metadatos que se reenvían a New Relic.
Configure el logs en el contexto para Java para enriquecer sus datos log , utilizando cualquiera de las siguientes extensiones según corresponda. Si usa Spring o Spring Boot y no está seguro de qué extensión necesita, consulte nuestra documentación de Spring .
Ofrecemos una extensión Dropwizard para logs en el contexto con el agente de Java. Para comenzar, revise el código y una aplicación de ejemplo en GitHub.
Para configurar el logs en el contexto para su aplicación Java con la extensión DropWizard:
Asegúrese de tener el paquete Dropwizard 1.3 o superior instalado y funcionando en su aplicación. Utilice los complementos originales de Dropwizard y la fábrica de registros instalados y funcionando en la aplicación.
Asegúrese de tener instalado en su aplicación New Relic agente de Java versión 5.6.0 o superior y de haber habilitado el argumentoJVM -javaagent.
Actualice la dependencia de su proyecto para incluir la extensión Dropwizard 1.3 según corresponda:
Gradle: Agregue lo siguiente a su archivo build.gradle :
Maven: Agregue lo siguiente a su archivo pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>dropwizard</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Actualice su archivo de configuración .yaml de Dropwizard con un diseño newrelic-json , reemplazando el type: console o type: file actualmente utilizado por type: newrelic-console o type: newrelic-file según corresponda. Por ejemplo:
logging:
appenders:
-type: newrelic-console
# Add the two lines below if you don't have a layout specified on the appender.
# If you have a layout, remove all parameters to the layout and set the type.
layout:
type: newrelic-json
La extensión New Relic Dropwizard también admite un tipo de diseño log-format que utiliza el registro estándar de Dropwizard. Para fines de prueba, puede cambiar el tipo de diseño con un cambio de una línea:
logging:
appenders:
-type: newrelic-file
# This format will be ignored by the newrelic-json layout, but used by the log-format layout.
Gradle: Agregue lo siguiente a su archivo build.gradle :
dependencies {
implementation("com.newrelic.logging:jul:2.0")
}
Maven: Agregue lo siguiente a su archivo pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>jul</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Compruebe si la propiedad handlers de su archivo de registro está configurada en algo distinto de NewRelicMemoryHandler. Busque una línea que enumere los controladores del logger raíz, como esta:
handlers=java.util.logging.FileHandler
Actualice su archivo de propiedades de registro para configurar el controlador del logger raíz en NewRelicMemoryHandler para que intercepte los mensajes destinados a otro controlador:
Configure NewRelicMemoryHandler estableciendo el objetivo en el controlador que se asignó previamente al logger raíz, para que capture los datos que New Relic necesita en el hilo del que proviene el mensaje de registro:
Utilice un NewRelicFormatter para el controlador final. Actualice su archivo de propiedades de registro para establecer la propiedad formatter como en el siguiente ejemplo. Asegúrese de que el controlador donde configuró el formateador sea el controlador target del paso anterior (java.util.logging.FileHandler en este ejemplo).
El formato de New Relic Logs es JSON con metadatos de telemetría que utilizamos para correlacionar transacciones y registrar juntos. Actualmente no admitimos ninguna personalización de ese formato.
Una vez completado, JSON es un registro en lugar de texto. El JSON debe tener el formato de objetos individuales, uno por línea, y debe contener campos como log.level y thread.name. El trace.id, que es necesario para logs en el contexto, solo debe tener un valor para el mensaje de registro que ocurre dentro de una transacción.
La forma más directa de obtener las extensiones de contexto de inicio de sesión es agregar estas dependencias a pom.xml de Maven o build.gradle de Gradle. Esto permite que las herramientas de embalaje recojan la dependencia correcta.
Si no puede editar estos archivos, puede agregar los archivos jar directamente a la aplicación classpath para la configuración de su framework de registro.
Verifique qué framework de registro está utilizando la aplicación.
Asegúrese de poder cambiar la configuración de su framework de registro.
Agregue los siguientes tres archivos jar al classpath si aún no están presentes. Generalmente, recomendamos utilizar las últimas versiones publicadas en Maven Central.
Ofrecemos una extensión Log4j 1.x para logs en el contexto manual con el agente de Java. Para comenzar, revise el código y una aplicación de ejemplo en GitHub.
Para configurar el inicio de logs en el contexto manual para su aplicación Java con la extensión Log4j 1.x, debe configurar la extensión Log4j en código o mediante XML. Los archivos de propiedades no son compatibles porque la instancia AsyncAppender solo se puede configurar automáticamente a través de XML.
Asegúrese de tener el paquete Log4j 1.x instalado y funcionando en la aplicación.
Asegúrese de tener instalado en su aplicación New Relic agente de Java versión 5.6.0 o superior y de haber habilitado el argumentoJVM -javaagent.
Actualice la dependencia de su proyecto para incluir la extensión Log4j 1.x según corresponda.
Gradle: Agregue lo siguiente a su archivo build.gradle :
dependencies {
implementation("com.newrelic.logging:log4j1:2.0")
}
Maven: Agregue lo siguiente a su archivo pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>log4j1</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
En su archivo XML de configuración de registro, actualice su elemento <appender> con un NewRelicLayout, agregando <layout class="com.newrelic.logging.log4j1.NewRelicLayout"/>:
Ofrecemos una extensión Log4j 2.x para iniciar sesión en contexto con el agente de Java. Para comenzar, revise el código y una aplicación de ejemplo en GitHub.
Para configurar el logs en el contexto para su aplicación Java con la extensión Log4j 2.x:
Si está utilizando un archivo de propiedades, solo cambie layout.type:
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=NewRelicLayout
Si solo modificó un apéndice existente, omita este paso. Si agregó un nuevo agregador, agregue <AppenderRef/> dentro de <Root> para usar este agregador. Utilice el atributo ref para hacer referencia al anexo name que creó en el paso anterior. Por ejemplo:
<Rootlevel="info">
<AppenderRefref="MyFile"/>
</Root>
Si está utilizando un archivo de propiedades y agregó un nuevo apéndice, agregue:
Actualice su configuración de registro xml con el NewRelicAsyncAppender. Para asegurarse de que NewRelicAsyncAppender incluya los apéndices que apuntarán al reenviador de registros de New Relic, agregue la siguiente sección. Cambie "LOG_FILE" por el nombre del appender que actualizó en el paso anterior.
Cerciorar de que NewRelicAsyncAppender sea el primer agregado empleado en su logger. Reemplace los apéndices de su loggerraíz con el apéndice ASYNC creado en el paso anterior. Luego, enumere cualquier otro apéndice luego del NewRelicAsyncAppender en la lista <root>.
<root>
<appender-refref="ASYNC"/>
</root>
A continuación se muestran ejemplos de un archivo de registro .xml actualizado para la extensión Logback. También puedes ver un ejemplo funcional en GitHub.
Single console appender example
Archivo de configuración de ejemplo después de agregar la información de la extensión de registro:
<!-- Send every message to normal console logging, as well. -->
<appender-refref="STDOUT"/>
</root>
</configuration>
Ofrecemos extensiones para las versiones actuales de Spring y Spring Boot. Si ya conoce la biblioteca de registro, puede pasar directamente a esa documentación:
Spring implementa un puente hacia otras bibliotecas de registro que las encontrará automáticamente. Sin embargo, esas bibliotecas individuales deben configurarse e incluirse explícitamente en la dependencia de su proyecto.
Para identificar su dependencia de registro, consulte el árbol de dependencias de Gradle, Maven u otra herramienta de compilación. Luego siga los procedimientos para configurar el logs en el contexto para su aplicación Java con esa extensión.
Primavera 4 o inferior:
La versión 4 de Spring y versiones anteriores utilizan Apache Commons Logging para su puente. Consulte la documentación de Spring para obtener información sobre cómo configurar su puente.