Java 使用Logger'打印类名、方法名和行号;s info()

Java 使用Logger'打印类名、方法名和行号;s info(),java,logging,logback,Java,Logging,Logback,我已经配置了logback文件来获取类名、方法名和行号 <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %class{36}.%M %L - %msg%n </pattern> 这就是我得到的: 14:41:48.097 [main] INFO c.a.j.orgchart.CsvPersonReader - Entering 我想打印如下内容: 14:41:48.097 [main] INFO c.a.j.orgc

我已经配置了logback文件来获取类名、方法名和行号

 <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %class{36}.%M %L - %msg%n </pattern>
这就是我得到的:

14:41:48.097 [main] INFO  c.a.j.orgchart.CsvPersonReader - Entering 
我想打印如下内容:

14:41:48.097 [main] INFO  c.a.j.orgchart.CsvPersonReader.[MethodName] [Linenumber] - Entering 

信息
%d{HH:mm:ss.SSS}[%thread]-5级别%class{36}。%M%L-%msg%n
上述模式输出结果如下所示:

10.05.2019 08:35:05.337 [INFO] epositoryConfigurationDelegate.forEach() : Bootstrapping Spring Data repositories in DEFAULT mode.
...
如果您想打印出稍微精巧的版本,这里还有另一个选项

logging.pattern.console=%14date{dd.MM.yyyy kk:mm:ss.SSS} [%1level] %40.40logger{0}\.%-35.35replace(%replace(%replace(%caller{3..4}){'[\n\r]',''}){'\\(.+\\)$','()'}){'^.+\\.',''} : %msg%n
输出如下所示:

10.05.2019 08:45:57.228 [DEBUG]                 RepositoryConfigurationDelegate.forEach()                           : Bootstrapping Spring Data repositories in DEFAULT mode.
10.05.2019 08:45:59.651 [INFO]          RepositoryConfigurationDelegate.forEach()                           : Finished Spring Data repository scanning in 384ms. Found 3 repository interfaces.
10.05.2019 08:46:00.524 [INFO] trationDelegate$BeanPostProcessorChecker.doCreateBean()                      : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$3f00c757] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
10.05.2019 08:46:03.828 [INFO]                          TomcatWebServer.getWebServer()                      : Tomcat initialized with port(s): 8080 (http)
10.05.2019 08:46:03.896 [INFO]                          StandardService.start()                             : Starting service [Tomcat]
10.05.2019 08:46:03.897 [INFO]                           StandardEngine.start()                             : Starting Servlet engine: [Apache Tomcat/9.0.14]
一,

请记住,“…生成调用方类信息是 不是特别快……”


但它没有打印我想要的内容您想要什么?您需要提供有关所采用的底层记录器框架的更多信息。当然,通过适当的配置,您将得到您想要的,而不需要额外的代码。标准java日志api?Log4j?@copeg这是我得到的14:41:48.097[main]信息c.a.j.orgchart.CsvPersonReader-正在输入,但我需要14:41:48.097[main]信息c.a.j.orgchart.CsvPersonReader。方法名称行号-Entering@Victor我刚刚更新了原来的帖子。@user2033382检查了这个:,可能会有帮助。有什么变化?你能解释一下这和你以前的不同吗?(尤其是您的模式,它看起来是相同的。)%logger{40}可用于获取标记名LoggerFactory.getLogger(标记名)标记名MyClass.class的示例。getSimpleName()logback是否使用反射来实现这一点?打印类名、方法名等?
10.05.2019 08:35:05.337 [INFO] epositoryConfigurationDelegate.forEach() : Bootstrapping Spring Data repositories in DEFAULT mode.
...
logging.pattern.console=%14date{dd.MM.yyyy kk:mm:ss.SSS} [%1level] %40.40logger{0}\.%-35.35replace(%replace(%replace(%caller{3..4}){'[\n\r]',''}){'\\(.+\\)$','()'}){'^.+\\.',''} : %msg%n
10.05.2019 08:45:57.228 [DEBUG]                 RepositoryConfigurationDelegate.forEach()                           : Bootstrapping Spring Data repositories in DEFAULT mode.
10.05.2019 08:45:59.651 [INFO]          RepositoryConfigurationDelegate.forEach()                           : Finished Spring Data repository scanning in 384ms. Found 3 repository interfaces.
10.05.2019 08:46:00.524 [INFO] trationDelegate$BeanPostProcessorChecker.doCreateBean()                      : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$3f00c757] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
10.05.2019 08:46:03.828 [INFO]                          TomcatWebServer.getWebServer()                      : Tomcat initialized with port(s): 8080 (http)
10.05.2019 08:46:03.896 [INFO]                          StandardService.start()                             : Starting service [Tomcat]
10.05.2019 08:46:03.897 [INFO]                           StandardEngine.start()                             : Starting Servlet engine: [Apache Tomcat/9.0.14]