Просмотр всех обменов с запросом webclient [дубликат]

Все ответы выше (кроме Мартина Андерсона) создают новый список без нужных элементов, а не удаляют элементы из исходного списка.

>>> import random, timeit
>>> a = list(range(5)) * 1000
>>> random.shuffle(a)

>>> b = a
>>> print(b is a)
True

>>> b = [x for x in b if x != 0]
>>> print(b is a)
False
>>> b.count(0)
0
>>> a.count(0)
1000

>>> b = a
>>> b = filter(lambda a: a != 2, x)
>>> print(b is a)
False

Это может быть важно, если у вас есть другие ссылки на список, висящий вокруг.

Чтобы изменить список на месте, используйте такой метод

>>> def removeall_inplace(x, l):
...     for _ in xrange(l.count(x)):
...         l.remove(x)
...
>>> removeall_inplace(0, b)
>>> b is a
True
>>> a.count(0)
0

Что касается скорости, то результаты на моем ноутбуке (все в списке записей 5000 с удаленным 1000 записей)

  • Понимание списка - ~ 400us
  • Фильтр - ~ 900us
  • .remove () loop - 50ms

Таким образом, цикл .remove примерно на 100x медленнее ........ Хм, возможно, необходим другой подход. Самое быстрое, что я нашел, это использование списка, но затем замените содержимое исходного списка.

>>> def removeall_replace(x, l):
....    t = [y for y in l if y != x]
....    del l[:]
....    l.extend(t)
  • removeall_replace () - 450us
6
задан Martin Prikryl 12 November 2015 в 15:42
поделиться

2 ответа

проверьте следующие ссылки для справки. если у вас есть IIS 7, тогда вы можете реализовать свои собственные функции.

реализация метода журнала интерфейса IFtpLogProvider

using System;
using System.IO;
using Microsoft.Web.FtpServer;
using System.Diagnostics;
using System.Diagnostics.Eventing;

namespace FtpLogging
{
    public class FtpLogDemo : BaseProvider,
        IFtpLogProvider
    {
        void IFtpLogProvider.Log(FtpLogEntry loggingParameters)
        {
         .......

Ссылка: IIS FTP 7.5 Расширяемость (IFtpLogProvider и протоколирование сбоев FTP в журнале событий) Проблема записи в файл (C #)

0
ответ дан Community 21 August 2018 в 20:57
поделиться

Вы можете сделать это, используя Трассировка сети . Чтобы установить его , создайте (или измените, если у вас уже есть) файл App.config, чтобы он выглядел так (если у вас уже есть файл, вам нужно будет добавить настройки в it):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Net" tracemode="protocolonly" maxdatasize="1024">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="System.Net" value="Information"/>
    </switches>
    <sharedListeners>
      <add name="System.Net"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="network.log"
      />
    </sharedListeners>
    <trace autoflush="true"/>
  </system.diagnostics>
</configuration>

Если вы это сделаете, ваше приложение создаст файл network.log, который может выглядеть примерно так:

System.Net Information: 1 : [8892] FtpWebRequest#2383799::.ctor(ftp://test/)
System.Net Information: 0 : [8892] FtpWebRequest#2383799::GetResponse(Method=LIST.)
System.Net Information: 0 : [8892] Current OS installation type is 'Client'.
System.Net Information: 0 : [8892] RAS supported: True
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Created connection from 192.168.1.1:51833 to 192.168.1.2:21.
System.Net Information: 0 : [8892] Associating FtpWebRequest#2383799 with FtpControlStream#33675143
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [220 This is the test FTP server. Authentication required.]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [USER svick]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [331 Password required for svick]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PASS ********]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [230 Logged on]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [OPTS utf8 on]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [200 UTF8 mode enabled]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PWD]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [257 "/" is current directory.]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [TYPE I]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [200 Type set to I]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PASV]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [227 Entering Passive Mode (174,37,88,92,117,98)]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [LIST]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [150 Connection accepted]
System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [226 Transfer OK]
System.Net Information: 0 : [8892] FtpWebRequest#2383799::(Releasing FTP connection#33675143.)

Это довольно многословный, но он содержит необходимую информацию. Если вы хотите изменить способ записи файла журнала, вы можете реализовать свой собственный TraceListener и использовать его в файле конфигурации вместо TextWriterTraceListener.

13
ответ дан Martin Prikryl 21 August 2018 в 20:57
поделиться
  • 1
    атрибуты tracemode и maxdatasize не допускаются ... – kaycee 12 March 2012 в 16:20
  • 2
    В нем говорится, что, но это не имеет значения, оно должно работать правильно. – svick 12 March 2012 в 17:39
  • 3
    привет, решение выглядит хорошо и отвечает моим ожиданиям, но возможно ли получить эту информацию вместо записи в файл? – kaycee 13 March 2012 в 16:48
  • 4
    Да, я думаю, вы бы создали класс, который наследует от TraceListener, чтобы сделать это, и использовать его в файле конфигурации. – svick 13 March 2012 в 16:55
  • 5
    Где создается файл журнала? – Tiaan 15 May 2017 в 11:40
Другие вопросы по тегам:

Похожие вопросы: