因此,为了在运行时查看当前对象的状态,我非常喜欢Visual Studio立即窗口给出的内容.只是做一个简单的
? objectname
Run Code Online (Sandbox Code Playgroud)
将给我一个格式良好的"转储"对象.
有没有一种简单的方法在代码中执行此操作,因此我可以在记录时执行类似的操作?
有时我在我的vimrc中尝试自定义/命令.一切都是正确的,但它不起作用.
很难知道当vim启动时发生了什么,并且知道哪个命令失败了,所以很难调试可能导致我的vimrc出现问题的原因.这是一种试错法,耗时而且真的是PITA.例如,我在某些文件中遇到了snipmate插件的问题,并且没有关于如何发现问题的线索.
当vim启动时是否有"运行时日志",告诉它执行哪些命令,哪些命令失败等等?这对我很有帮助.
我们在我们的项目中使用SLF4J + Logback组合已经有一段时间了,并且对它非常满意,但是我们的日志记录策略相当简单,使用简单的基于类的记录器并且没有像MDC或Markers这样的花哨的东西.
我想知道的是,社区中是否有人实际使用这些功能以及它们如何用于改进日志记录/过滤.
我特别感兴趣的是在哪里,为什么以及如何使用[1]标记进行记录.他们认为这是一个非常简洁的功能,可以在记录中添加语义上下文 - 例如,当一个类可能正在处理多个问题时,可以使用任务/关注特定标记来区分日志语句.
在日志记录中创建和使用标记的最佳实践,约定或策略可能是什么.
更新:我想,我真正追求的不是为什么使用标记,而是如何使用标记- 是否有一些命名标记的好方法(例如使用带空格的明文或短划线/下划线/标点符号分隔的关键字样式名称),是否应该有某种"标准名称"池,根据业务功能命名.我可以为自己解决的问题,但如果我想系统地使用这些功能并将它们介绍给开发人员团队,那么就可以制定一些可正式的指导方针......
[1] - 通过询问如何使用标记我并不是真的问如何使用API(它确实非常直接) - 我更倾向于指出如何设置使用标记一致地记录的更一般级别
目前,默认条目如下所示:
Oct 12, 2008 9:45:18 AM myClassInfoHere
INFO: MyLogMessageHere
Run Code Online (Sandbox Code Playgroud)
我怎么做到这一点?
Oct 12, 2008 9:45:18 AM myClassInfoHere - INFO: MyLogMessageHere
Run Code Online (Sandbox Code Playgroud)
澄清我正在使用java.util.logging
我在Retrofit API中找不到用于记录完整请求/响应主体的相关方法.我期待在Profiler中提供一些帮助(但它只提供有关响应的元数据).我尝试在Builder中设置日志级别,但这对我没有帮助:
RestAdapter adapter = (new RestAdapter.Builder()).
setEndpoint(baseUrl).
setRequestInterceptor(interceptor).
setProfiler(profiler).
setClient(client).
setExecutors(MyApplication.getWebServiceThreadPool()).
setLogLevel(LogLevel.FULL).
setLog(new RestAdapter.Log() {
@Override
public void log(String msg) {
Log.i(TAG, msg);
}
}).
build();
Run Code Online (Sandbox Code Playgroud)
编辑:此代码现在正在运行.我不知道它为什么不提前工作.可能是因为我正在使用一些旧版本的改造.
我想以文件命名为例:
dd.mm.yyyy.log
log4net怎么可能这样?
我将从代码开始:
var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);
Run Code Online (Sandbox Code Playgroud)
简单吧?对此,Firebug说:
["hi"]
["bye"]
Run Code Online (Sandbox Code Playgroud)
很棒,但Chrome的JavaScript控制台(7.0.517.41 beta)说:
["bye"]
["bye"]
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者Chrome的JavaScript控制台在评估我的阵列方面特别懒惰?
为什么人们会使用以下其中一个而不是另一个?
如果我要将一个程序投入生产,我需要该程序做几件事,以便将其视为"操作化" - 即,工程师和操作人员以可测量和可验证的方式运行和维护.就我的目的而言,一个可操作的计划必须:
在Scala世界中,有很好的库可以处理至少前三个要求.例子:
至于部署,Scala世界采用的一种方法是将字节码和包含一个程序的库捆绑在一起,例如assembly-sbt,然后使用像Capistrano这样的工具将生成的包("胖JAR")推送到远程服务器通过SSH并行执行命令.这不是一个需要特定语言工具的问题,但我很好奇Haskell社区中是否存在这样的工具.
可能有Haskell库提供了我上面描述的特征.我想知道哪些库可以被认为是"最好的"; 也就是说,它是最成熟,维护良好的,常用于Haskell社区,是Haskell最佳实践的典范.
如果有任何其他库,工具或实践使Haskell代码"生产就绪",我也很想知道这些.
我使用init脚本来运行一个简单的进程,该进程以:
start-stop-daemon --start --quiet --chuid $DAEMONUSER \
--make-pidfile --pidfile $PIDFILE --background \
--exec $DAEMON $DAEMON_ARGS
Run Code Online (Sandbox Code Playgroud)
名为$ DAEMON的进程通常将日志信息打印到其标准输出.据我所知,这些数据没有存储在任何地方.
我想将$ DAEMON的stdout写入或附加到某个文件中.
我知道的唯一解决方案是告诉start-stop-daemon直接调用一个shellscript而不是$ DAEMON; 然后脚本调用$ DAEMON并写入日志文件.但这需要一个额外的脚本,就像修改守护进程本身一样,似乎是解决这种常见任务的错误方法.