使用mx.logging包进行高级trace

本文介绍Flex框架中的高级Trace技巧,通过使用mx.logging下的logging framework,实现更强大的调试功能。该框架支持不同级别的日志记录,并可通过TraceTarget类自定义显示方式,如添加时间戳、类别等,同时提供灵活的日志过滤选项。
flex在mx.logging下包含了一个完整的 logging framework,利用这个logging framework 可以很方便的调试程序

这个 logging framework 主要由 logger 和 target 两部分组成。

logger 负责发送消息,而且支持若干等级的消息,比如你可以 logger.debug("这是条debug消息") , logger.error("这是error消息")...后边3个也类似.. fatal(), info(), warn()

target 负责用什么机制显示和在哪里显示 logger发送的消息,这个framework的高超之处就是可以随意扩展被logger发送出来的消息的显示机制,比如在FMS开发中可以扩展出一个类把logger发送的消息发送到server端,或者比如在AIR开发中也可以扩展一个类把error消息写成一个txt文件,甚至可以再扩展一个类利用后台程序把错误消息存到
数据库里。但这都不属于本文范畴了,本文只说这个最简单的trace

mx.logging.targets 包中包含了一个TraceTarget类是用自带的trace机制来显示logger发送的消息,也就是说,logger发出的消息,我们既不存到txt文件,也不发送到数据库,我们只把它trace出来。

既然只是trace出来我们直接trace就好了何必用这个什么logging framework呢,这个问题很简单看标题“高级trace”
高级trace不是普通的trace,可以使trace出的东西支持时间,种类,级别...还可以过滤哪些我们不关注的类的trace信息不显示出来,哪些需要显示。

直接看一个包含这些特性的高级trace的例子



initialize="initializeHandler( )">


_target.level = LogEventLevel.INFO //只显示info()信息,其他什么debug()啊error()啊都不显示...

Log.addTarget(_target); //配置好target了把它填到Log里
}

//按钮一release就trace
private function sendToLog( ):void
{

Log.getLogger("net.nshen.logging.MainClass").info("看到info信息了吧~~haha只有我被显示出来了");
Log.getLogger("com.adobe.MainClass").info("由于不是net.nshen.logging包里的,所以我没有被显示出来...5555");
Log.getLogger("net.nshen.logging.MainClass").debug("由于不是info信息,所以我也没有被显示出来...555555555555");
// 两个参数,(种类 ,输出的信息)
//种类当然也可以不是用类的全名,但过滤时候就会出现比较麻烦的情况了,所以比较好的办法是将种类设置成类的全名例如上边的net.nshen.logging.MainClass
}
]]>




点了按钮后就会看到如下输出

10/1/2007 18:25:02.921 [INFO] net.nshen.logging.MainClass 看到info信息了吧~~haha只有我被显示出来了

本文转自
http://www.nshen.net/blog/article.asp?id=518
warning: ignoring JAVA_HOME=C:\Program Files\Java\jdk-17; using ES_JAVA_HOME Aborting auto configuration because of config dir ownership mismatch. Config dir is owned by DESKTOP-QG4PI93\Admin but auto-configuration directory would be owned by BUILTIN\Administrators java.lang.RuntimeException: starting java failed with [1] output: [0.005s][error][logging] Error opening log file 'logs/gc.log': No such file or directory [0.005s][error][logging] Initialization of output 'file=logs/gc.log' using options 'filecount=32,filesize=64m' failed. error: Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,level,pid,tags:filecount=32,filesize=64m', see error log for details. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. at org.elasticsearch.server.cli.JvmOption.flagsFinal(JvmOption.java:121) at org.elasticsearch.server.cli.JvmOption.findFinalOptions(JvmOption.java:88) at org.elasticsearch.server.cli.MachineDependentHeap.determineHeapSettings(MachineDependentHeap.java:56) at org.elasticsearch.server.cli.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:146) at org.elasticsearch.server.cli.JvmOptionsParser.determineJvmOptions(JvmOptionsParser.java:98) at org.elasticsearch.server.cli.ServerCli.startServer(ServerCli.java:268) at org.elasticsearch.server.cli.ServerCli.execute(ServerCli.java:111) at org.elasticsearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:55) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:95) at org.elasticsearch.cli.Command.main(Command.java:52) at org.elasticsearch.launcher.CliToolLauncher.main(CliToolLauncher.java:65)
最新发布
09-02
<think>我们有一个明确的需求:设置Spring Data Neo4j和相关组件的日志级别为DEBUG和TRACE。 根据引用[1],我们知道SpringBoot默认使用日志框架(如Logback),并且可以通过配置日志级别。 引用[2]提供了关于log4j配置的详细信息,但SpringBoot默认使用Logback,不过配置日志级别的方式类似(通过application.properties或application.yml)。 另外,我们还需要设置Neo4j驱动的日志级别。 步骤: 1. 确定要调整日志级别的或类。对于Spring Data Neo4j,通常需要设置以下- org.springframework.data.neo4j: 这是Spring Data Neo4j本身的 - org.neo4j.driver: Neo4j Java驱动 2. 在Spring Boot的配置文件(application.properties或application.yml)中设置这些的日志级别。 例如,在application.properties中: logging.level.org.springframework.data.neo4j=DEBUG logging.level.org.neo4j.driver=TRACE 3. 如果需要更详细的日志,还可以设置其他相关,比如事务管理等。 注意:TRACE级别比DEBUG更详细,通常用于更深入的调试。但请注意,设置TRACE级别可能会产生大量日志。 另外,根据引用[1]中的示例,我们可以使用LoggerFactory来记录日志,但这里我们关注的是配置。 如果使用logback.xml或log4j2.xml等自定义配置文件,也可以在配置文件中设置。但SpringBoot推荐使用application.properties进行简单配置。 因此,我们给出两种方式: 方式一:通过application.properties配置 # 设置Spring Data Neo4j的日志级别 logging.level.org.springframework.data.neo4j=DEBUG # 设置Neo4j驱动的日志级别 logging.level.org.neo4j.driver=TRACE 方式二:通过logback.xml配置(如果存在该文件,则优先使用该文件) 在src/main/resources下创建logback.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> <logger name="org.springframework.data.neo4j" level="DEBUG" /> <logger name="org.neo4j.driver" level="TRACE" /> <root level="INFO"> <appender-ref ref="CONSOLE" /> </root> </configuration> 注意:在SpringBoot中,默认日志框架是Logback,所以使用logback.xml是有效的。 但是,根据问题,我们只需要设置日志级别,所以使用application.properties更简单。 另外,引用[3]和[4]似乎与日志配置无关,但引用[4]提到了Spring Data JPA,而我们这里使用的是Spring Data Neo4j,但配置日志级别的方式是类似的(都是通过名设置)。 因此,我们推荐使用application.properties的方式。 如果使用yaml格式,则在application.yml中: logging: level: org.springframework.data.neo4j: DEBUG org.neo4j.driver: TRACE 最后,注意:如果设置后没有生效,请检查是否使用了正确的名,以及是否有其他配置覆盖了日志级别。 另外,如果使用的是Log4j2,则需要在application.properties中指定使用log4j2(但SpringBoot默认是Logback),或者使用log4j2.xml配置。但通常SpringBoot的logging.level配置对Logback和Log4j2都适用(通过SpringBoot的抽象层)。 所以,我们优先使用application.properties配置。 总结:在application.properties中加入两行配置即可。</think>### Spring Data Neo4j 日志级别配置指南 要设置 Spring Data Neo4j 和相关组件的日志级别为 DEBUG/TRACE,可通过以下方式配置: #### 1. **通过 application.properties 配置** 在 `application.properties` 文件中添加: ```properties # Spring Data Neo4j 日志 logging.level.org.springframework.data.neo4j=DEBUG # Neo4j Java 驱动日志 logging.level.org.neo4j.driver=TRACE # 事务管理器日志(可选) logging.level.org.springframework.transaction=DEBUG ``` #### 2. **通过 application.yml 配置** ```yaml logging: level: org.springframework.data.neo4j: DEBUG org.neo4j.driver: TRACE org.neo4j.ogm: DEBUG # 如果使用 OGM org.springframework.transaction: DEBUG ``` #### 3. **通过 logback.xml 高级配置** 在 `src/main/resources/logback.xml` 中: ```xml <configuration> <logger name="org.springframework.data.neo4j" level="DEBUG" /> <logger name="org.neo4j.driver" level="TRACE" /> <!-- 输出到控制台 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="CONSOLE" /> </root> </configuration> ``` ### 关键组件说明 1. **`org.springframework.data.neo4j`** Spring Data Neo4j 核心库,DEBUG 级别显示查询生成、实体映射等细节。 2. **`org.neo4j.driver`** Neo4j Java 驱动程序,TRACE 级别显示网络通信、协议细节(如 Bolt 协议报文)[^1]。 3. **`org.neo4j.ogm`**(可选) 对象-图映射框架,DEBUG 级别显示会话管理和 CYPHER 生成。 ### 验证配置 在代码中添加日志测试: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Neo4jTest { private static final Logger logger = LoggerFactory.getLogger(Neo4jTest.class); public void testLogging() { logger.debug("Spring Data Neo4j DEBUG 日志已启用"); logger.trace("Neo4j 驱动 TRACE 日志已启用"); } } ``` ### 注意事项 - TRACE 级别会产生大量输出,建议仅在调试时启用 - 生产环境应将级别调回 INFO 或 WARN - 确保无其他配置覆盖日志设置(如自定义 `log4j2.xml`) - Neo4j 驱动 TRACE 日志会暴露敏感数据(如查询参数),需注意安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值