小编gra*_*ney的帖子

Log4Net将两个不同级别的日志记录到同一记录器的两个不同的appender中

我们有两个不同的asp.net应用程序,启用了Log4net日志记录.它们都具有相同版本的Log4Net,1.2.10.0.

我们已将log4net.Appender.AdoNetAppender记录器添加到它们中,并希望将根目录记录器的Info级别记录到它,但是还要记录根记录器到文件追加器的错误级别.我们的配置如下;

<?xml version="1.0" encoding="utf-8"?>

<log4net>
    <appender name="filelogAppender" type="log4net.Appender.RollingFileAppender" >
        <file value="..\logs\app.debug.log" />
        <encoding value="utf-8" />
        <staticLogFileName value="true" />
        <datePattern value=".yyyyMMdd.'log'" />
        <rollingStyle value="Composite" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <appendToFile value="true" />
        <maximumFileSize value="1MB" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%3thread] %-5level %property{log4net:HostName} [%property{Revision}] %logger %message%n" />
        </layout>
    </appender>
    <!--    
        use [DB]
        GO
        CREATE TABLE [dbo].[Log] (
            [Id] [int] IDENTITY (1, 1) NOT NULL,
            [Date] [datetime] NOT NULL,
            [Application][varchar] (255) NOT NULL,
            [Thread] [varchar] (255) NOT NULL,
            [Level] [varchar] (50) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net logging log4net

66
推荐指数
2
解决办法
5万
查看次数

使用Javascript [no cache]强制在Chrome中重新加载页面

我需要使用JavaScript重新加载页面,并确保它不会从浏览器缓存中提取,而是从服务器重新加载页面.[由于页面元素在过渡期间会发生变化]

在IE和FF上,我发现以下代码工作正常;

window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)

但是它不适用于Chrome或Safari.

我试过以下,但也无济于事;

window.location.replace(location.href);
document.location.reload(true);
document.location.replace(location.href);
Run Code Online (Sandbox Code Playgroud)

这个问题有解决方案吗?

发现

在调查之后我发现这个问题是HTTP协议处理;

  1. Chrome通过Pragma: no-cacheHTTP字段发送请求
  2. 服务器响应Last-Modified: DATE1字段
  3. JS用于location.reload(true)强制从服务器重新加载而不是缓存
  4. Chrome通过If-Modified-Since: DATE1字段发送请求
  5. 服务器响应 HTTP Status 304 Not Modified

服务器应用程序因未注意到动态页面内容中的状态更改而出错,因此不返回a 200.但是,Chrome/WebKit是唯一一个If-Modified-Sincelocation.reload(true)调用JS时发送字段的浏览器.

我想我会把我的发现放在这里以防其他人遇到同样的问题.

javascript safari webkit google-chrome browser-cache

21
推荐指数
3
解决办法
3万
查看次数

Symfony2使用查询字符串参数路由到控制器

我目前住在Bizzaro World,有一位客户.

因为我们正在编写的symfony应用程序将响应注入到另一个应用程序的页面中,所以我们被迫只为应用程序提供一个URL,但幸运的是我们确实将查询字符串完整地传递给了我们.

因此,我需要与symfony如何做事完全相反,这是一种旧式的MVC方法.我需要路由通过查询字符串参数工作,路由到正确的控制器并呈现正确的响应,而不是使用标准的,理智的路径方法.

所以网址将是,http://www.bizzaro.com/appname?route=%2fblog而不是http://www.bizzaro.com/appname/blog,等等.

在路由部分中有很好的例子,说明如何确保查询字符串作为参数传递给控制器​​操作,但不是这种相当回归的方法.

我从哪里开始?

我实现了Corentin Dandoy在下面提出的解决方案2,但稍微修改以防止在查找根时出现循环.

namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class FrontControllerControllerController extends Controller
{
    /**
     * Forward the request to the appropriate controller
     * @param Request $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function indexAction(Request $request)
    {
        // get the parameter that specifies the route to the 'real' homepage controller
        $homeroute = $this->container->getParameter('homeroute');
        $route = $request->query->get('route');

        // Convert the query-string route into a valid path route
        $path = '/'.$route; …
Run Code Online (Sandbox Code Playgroud)

php routing query-string symfony

5
推荐指数
1
解决办法
2175
查看次数