尝试将Logger对象强制转换为自己的包装器记录器时获取ClassCastException

时间:2018-05-24 02:01:28

标签: rest spring-boot microservices log4j2

我正在尝试通过扩展Logger编写一个包装器记录器类,它将记录类名,方法名,消息和错误/异常详细信息。

在下面的行中获取例外

使用下面的XML,有时它也会使用SLF4J记录器并获得SLF4j绑定异常。

我的pom.xml:

ENTRY(start);
SECTIONS
{
    . = 0x7C00;
    .text : AT(0x7C00)
    {
        _text = .;
        *(.text);
        _text_end = .;
    }
    .data :
    {
        _data = .;
        *(.bss);
        *(.bss*);
        *(.data);
        *(.rodata*);
        *(COMMON)
        _data_end = .;
    }
        PROVIDE(data = .);

        /* The data segment */
        .data : {
                *(.data)
        }

        PROVIDE(edata = .);

        .bss : {
                *(.bss)
        }

        PROVIDE(end = .);

        /DISCARD/ : {
                *(.eh_frame .note.GNU-stack)
        }
}

=============================================== ====================

的log4j.xml

all: test
OBJDUMP=objdump
OBJCOPY=objcopy

CFLAGS = -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer
CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
ASFLAGS = -m32 -gdwarf-2 -Wa,-divide
LDFLAGS += -m $(shell $(LD) -V | grep elf_i386 2>/dev/null)

guest: test_app.c
        $(CC) -g2 -Wall -Wextra -Werror $^ -o $@
        $(CC) $(CFLAGS) -fno-pic -nostdinc -I. -c bootasm.S
        $(CC) $(CFLAGS) -fno-pic -I. -c bootmain.c
        $(LD) $(LDFLAGS) -N -e start -Tlinker.ld -o bootblock.o bootasm.o bootmain.o
        $(OBJDUMP) -S bootblock.o > bootblock.asm
        $(OBJCOPY) -S -O binary -j .text bootblock.o bootblock.bin

clean:
        rm -f *.o
        rm -f *.d
        rm -f test
        rm -f *.bin
        rm -f bootblock.asm

1 个答案:

答案 0 :(得分:0)

要删除slf4j binding exceptions,您可能应该从spring-boot-starter-logging删除pom.xml依赖项。

实际上,spring-boot-starter artificat已添加此依赖关系,因此您需要将其排除在下方 -

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
       <scope>test</scope>
   </dependency>