我在tomcat 6下部署的apring webapp中的日志设置有问题.
webapp使用commons-logging api,应该使用运行时log4j.日志文件已创建但仍为空 - 不会发生任何日志条目.
设置如下:
WEB-INF/web.xml文件:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
WEB-INF /班/ commons-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
Run Code Online (Sandbox Code Playgroud)
WEB-INF/log4j.xml文件:
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/my.log"/>
...
</appender>
<logger name="my.package">
<level value="INFO"/>
</logger>
<root>
<level value="ERROR"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)
创建了文件logs/my.log,但没有显示日志.这是tomcat控制台上的信息日志,但没有配置布局模式.
commons-logging-1.1.1.jar和log4j-1.2.14.jar包含在WEB-INF/lib中.知道这里有什么问题吗?
我最近遇到了一个错误,只有在将库构建为发布版本而不是调试版本时才会显示出来.该库是一个带有COM包装器的.NET DLL,我使用CoCreateInstance在非托管c ++应用程序中从dll创建一个类.当我最终跟踪错误时,它是由访问单个对象引起的.我将单例实例声明为:
private static readonly MyObjectType s_instance = new MyObjectType;
Run Code Online (Sandbox Code Playgroud)
然后使用以下方法访问它:
public static MyObjectType Instance
{
get
{
return s_instance;
}
}
Run Code Online (Sandbox Code Playgroud)
这是失败的.将其更改为:
private static MyObjectType s_instance;
public static MyObjectType Instance
{
get
{
if (s_instance==null)
{
s_instance = new MyObjectType();
}
return s_instance;
}
}
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.任何想法为什么初始使用不起作用,以及是否有任何缺点,无论如何做到这一点?
发布dll似乎可以从另一个托管应用程序中完全使用.
在ASP.net MVC上,让控制器将301重定向返回到外部站点的"正确"方法是什么?
各种RedirectTo-Function似乎只返回我手动映射的相对链接或路由,但没有办法说"执行301重定向到http://example.com ".
我想我可以设置Response.StatusCode或使用Response.Redirect,但是它应该在MVC中完成吗?或者是否有正式的"正确方式"来执行重定向?
更新:与此同时,我为此写了一个ActionResult:PermanentRedirectResult
更新2:自ASP.net 4.0以来,永久重定向是框架的一部分.
我可以在一个表中拥有多个主键吗?
如何检索cmd.exe的当前工作目录?
这似乎是可能的.例如,使用ProcessExplorer,选择CMD.exe,右键单击,属性,图像选项卡,"当前目录"使用CD或CHDIR命令关联目录集.
我查看了.NET Process和ProcessStartInfo类(ProcessStartInfo.WorkingDirectory总是返回""),似乎无法找到确定这一点的方法.PInvoke的任何一个都不突出.
作为一个例子,我希望以编程方式能够说出类似:Process.GetCurrentWorkingDirectory(processID),其中processID是另一个正在运行的进程的Windows进程ID.
有没有解决方案,WinAPI或.NET?
[更新]
提出这个问题的原因:
我已经使用了"命令提示符浏览器栏"一段时间,它很棒,除非我"CD"到一个新目录,当前的资源管理器窗口也没有改变.(即,从资源管理器到命令提示符只有1路同步).我想要做到这一点.
Windows(Vista)命令行上获取远程Web服务器上文件大小和修改时间的最佳方式(或工具)是什么,而不下载它?
如何在Google Chrome JavaScript控制台中打印调试消息?
请注意,JavaScript控制台与JavaScript调试器不同; 它们具有不同的语法AFAIK,因此JavaScript调试器中的print命令在此处不起作用.在JavaScript控制台中,print()将参数发送到打印机.
如何在ASP.NET MVC框架中生成友好的URL?例如,我们有一个如下所示的URL:
http://site/catalogue/BrowseByStyleLevel/1
1是研究级别的Id(在这种情况下是更高的)来浏览,但我想以与StackOverflow相同的方式重新格式化URL.
例如,这两个网址会将您带到同一个地方:
编辑:网址的友好部分被称为slug.
有没有办法在C#中反序列化表达式,我想将表达式存储在数据库中并在运行时加载它们.
我正在使用附属程序集来保存C#应用程序中的所有本地化资源.
我需要做的是在GUI中创建一个菜单,其中包含应用程序所存在的所有可用语言.有没有办法动态获取信息?
c# ×3
.net ×2
asp.net-mvc ×2
assemblies ×1
cmd ×1
com ×1
command-line ×1
console ×1
database ×1
debugging ×1
directory ×1
friendly-url ×1
http ×1
java ×1
javascript ×1
log4j ×1
logging ×1
primary-key ×1
satellite ×1
singleton ×1
slug ×1
tomcat ×1
winapi ×1
windows ×1