有时当我看到我的日志代码时,我想知道我是否做得对.可能没有明确的答案,但我有以下问题:
图书馆课程
我有几个库类可能会记录一些INFO消息.致命错误报告为例外.目前我的类中有一个静态记录器实例,类名作为日志名称.(Log4j的:Logger.getLogger(MyClass.class))
这是正确的方法吗?也许这个库类的用户不希望我的实现发送任何消息,或者想要将它们重定向到特定于应用程序的日志.我应该允许用户从"外部世界"设置记录器吗?你如何处理这种情况?
一般日志
在某些应用程序中,我的类可能希望将日志消息写入未由类名称标识的特定日志.(即:) HTTP Request log这样做的最佳方法是什么?想到一个查找服务......
我试图将自定义类型指定为std :: map的键.这是我用作键的类型.
struct Foo
{
Foo(std::string s) : foo_value(s){}
bool operator<(const Foo& foo1) { return foo_value < foo1.foo_value; }
bool operator>(const Foo& foo1) { return foo_value > foo1.foo_value; }
std::string foo_value;
};
Run Code Online (Sandbox Code Playgroud)
当与std :: map一起使用时,我收到以下错误.
error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const Foo' (or there is no acceptable conversion) c:\program files\microsoft visual studio 8\vc\include\functional 143
Run Code Online (Sandbox Code Playgroud)
如果我改变下面的结构,一切都有效.
struct Foo
{
Foo(std::string s) : foo_value(s) {}
friend bool …Run Code Online (Sandbox Code Playgroud) 我有以下字符串"项目编号:237728"我正在申请替换
str.replace(/[^0-9]/g,'');
Run Code Online (Sandbox Code Playgroud)
但字符串不会更改,不会删除非数字.任何想法为什么?谢谢
对于我们的一些构建,我在eclipse中运行来自ant的flex编译器(mxmlc)(它们也意味着在我们的持续集成服务器上运行,这就是我不使用flex builder本身构建的原因) - 模式eclipse-console无法识别mxmlc,因此我无法点击它们.
模式是这样的:
<文件的绝对路径>(<行号>):col:<列号>警告:<消息>
提出检测这些消息的正则表达式应该不难.
如何让eclipse识别出一种新的错误信息?我是否必须编写自己的扩展程序,或者是否有一些常规支持我可以在配置中添加正则表达式?
我也可以尝试让ant将错误转换为看起来像java错误的东西,但我宁愿让eclipse识别mxmlc错误.
我在log4j.properties上有以下内容
log4j.rootLogger = debug, stdout, fileLog
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.fileLog = org.apache.log4j.RollingFileAppender
log4j.appender.fileLog.File = C:/logs/services.log
log4j.appender.fileLog.MaxFileSize = 256MB
log4j.appender.fileLog.MaxBackupIndex = 32
#Category: ConsultaDados
log4j.category.ConsultaDados=ConsultaDados
log4j.appender.ConsultaDados=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ConsultaDados.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsultaDados.layout.ConversionPattern={%t} %d - [%p] %c: %m %n
log4j.appender.ConsultaDados.file=C:/logs/consulta.log
log4j.appender.ConsultaDados.DatePattern='.' yyyy-MM-dd-HH-mm
Run Code Online (Sandbox Code Playgroud)
我用以下方法创建我的记录器:
myLogger = Logger.getLogger("ConsultaDados");
Run Code Online (Sandbox Code Playgroud)
但这并没有记录我对该文件的调用.他们被扔进了rootLogger
有任何想法吗?
我听说使用某些语言(RoR)时生产率的提高.我也听说过一些VM比其他VM更优化(GHC?).还有一些人试图通过改进底层架构来优化他们的选择语言(Unladen Swallow)
然而,在阅读论文("SSA是函数式编程")时,我有一个问题,即根据其语法,特定语言是否(有一天)能够成为具有最佳性能的语言.
我想我要问的是,无论一个特定的语法,理论上是最适合生成最佳机器代码的齿轮.我会对任何意见的基础理论非常感兴趣 - 我正在与一些朋友讨论这个问题,我们正在讨论有关特定语法的信息内容的想法.
请注意我正在谈论具有至少一流功能的语言 - 请不要ASM.
我想有一天我看到了一种创建链接的方法,而不是发送用户最初的页面.那可能吗?或者我们是否需要使用重定向器来隐藏上一个站点的位置?
编辑:如果你有一个服务器端选项的想法匿名链接,欢迎你.
我的应用程序依赖于OpenSSL库(通过Qt网络模块;由于法律问题,您无法静态将其编译为Qt)
有这个项目 - Win32 OpenSSL
似乎所有我需要的是将两个dll复制到System32并注册它们.
copy ssleay32.dll %WINDIR%\System32\ssleay32.dll
copy libeay32.dll %WINDIR%\System32\libeay32.dll
regsvr32.exe /s %WINDIR%\System32\ssleay32.dll
regsvr32.exe /s %WINDIR%\System32\libeay32.dll
Run Code Online (Sandbox Code Playgroud)
事实上,这已经在办公室中的几台机器上运行了(我的应用程序在操作后开始正常使用https).那些安装了很多东西,所以它可能会干扰.
它仍然无法在VMWare下的干净虚拟机上运行.
虽然当我在它下面安装Tortoise SVN(它随OpenSSL一起提供)时,一切都会好起来的.将openssl安装到系统中的正确方法是什么?
注意:Qt网络模块拥有自己的证书颁发机构列表.
在我的应用程序的ASP.NET执行期间,似乎SQL 2008 Express持有一些锁,我得到了
Run Code Online (Sandbox Code Playgroud)Timeout expired. The timeout period elapsed prior to completion of操作或服务器没有响应
也许我的一些查询没有优化.Visual Studio崩溃:
Run Code Online (Sandbox Code Playgroud)Microsoft Visual Studio may be unstable now. It is recommended that您保存所有文件并退出.
我需要查看哪些查询阻止了我的表,但我有Express版本.我能怎么做?
谢谢