Migración a log4j2
La clase YFCLogCategory que se utiliza principalmente para el registro por el código Sterling™ Order Management System y también utilizado por el código de cliente no extiende org.apache.log4j.Category, que es una clase log4j 1.x. El código personalizado se ve afectado con este release si está utilizando métodos que no están definidos por la clase YFCLogCategory . Los métodos que no están definidos por la clase YFCLogCategory y están disponibles en la clase padre org.apache.log4j.Category no están soportados.
YFCLogCategory para asegurarse de que no se producen anomalías de tiempo de ejecución del código personalizado. Sin embargo, estos son métodos ficticios y pueden eliminarse en un release posterior.public void log(Object level, Object obj)public void setLevel(Object level)public boolean isEnabledFor(Object level)
El método YFCLogCategory.getLogger() no está soportado. En su lugar, utilice el método YFCLogCategory.instance(Class.class) .
private static YFCLogCategory logger = YFCLogCategory.instance(MyClassName.class);- Si está haciendo la conversión de la instancia de
YFCLogCategoryaorg.apache.log4j.Categoryoorg.apache.log4j.Logger, no está soportada. La conversión de una instancia deYFCLogCategoryaorg.apache.log4j.Loggeroorg.apache.log4j.Categoryno se compila al escribir código nuevo. Para el código personalizado existente que tiene estas conversiones, el código personalizado encuentraClassCastExceptionen tiempo de ejecución. Por ejemplo, la línea #2 y #3 del siguiente patrón de código no están soportados.YFCLogCategory LOGGER = YFCLogCategory.instance(MyClass.class.getName()); org.apache.log4j.Logger apLogger=(org.apache.log4j.Logger)LOGGER; // Not supported org.apache.log4j.Category apCategory=(org.apache.log4j.Category)LOGGER; // Not supported - Si está llamando a
log(Level level, Object), sustitúyalo por métodos específicos como error (Object) o debug (Object) proporcionados por la claseYFCLogCategory. - Si está llamando a
setLevel(Level level), debe suprimirlo. No puede cambiar los niveles de los registradores en log4j2 porque no está soportado en la API log4j2 . El código realiza una gestión adicional de los niveles de registro y debe crear rastreos para partes específicas del código para las que desea un registro ampliado. - Si llama a
isEnabledFor(Level level), sustitúyalo por métodos específicos como isInfoEnabled o isTimerEnabled.
Descontinuación de los frascos de log4j-1.x
Los log4j-1.x archivos jar no son compatibles con el sistema IBM Sterling Order Management como parte del paquete de personalización del cliente.
Descontinuación de los archivos JAR puente de log4j1 a log4j2
Los frascos puente de « log4j1 » a « log4j2 » no son compatibles. Por ejemplo, no se admite añadir log4j-1.2-api-2.17.1.jar a un paquete de personalización.
Debe actualizar su código personalizado o actualizar cualquier archivo jar de terceros que aún dependa de log4j-1.x. Log4j-1.x está obsoleto y ya no es compatible con Apache. Si tienes bibliotecas de terceros que aún requieren log4j 1.x, es probable que se trate de bibliotecas obsoletas. Debe migrar a la última versión de estas bibliotecas de terceros o buscar alternativas más seguras si las bibliotecas se actualizan para utilizar log4j2.