Вы могли обойти свою проблему путем проверки на количество обработчиков при выполнении init.
def init_logging():
stdoutHandler = logging.StreamHandler( sys.stdout )
stdoutHandler.setLevel( DEBUG )
stdoutHandler.setFormatter( logging.Formatter( LOG_FORMAT_WITH_TIME ) )
logger = logging.getLogger( LOG_AREA1 )
if len(logger.handlers) < 1:
logger.addHandler( stdoutHandler )
я не думаю, что это - отличный способ обработать его. Лично, для входа в систему django с Python, регистрирующим модуль, я создаю регистратор в views.py для каждого приложения, которым я интересуюсь, затем захватите регистратор в каждой функции представления.
from django.http import HttpResponse
from magic import makeLogger
from magic import getLogger
makeLogger('myLogName', '/path/to/myLogName.log')
def testLogger(request):
logger = getLogger('myLogName')
logger.debug('this worked')
return HttpResponse('TEXT, HTML or WHATEVER')
Это - довольно хорошая статья об отладке django и покрывает некоторый вход: http://simonwillison.net/2008/May/22/debugging/
http://msdn.microsoft.com/en-us/library/77zkk0b6. aspx
Попробуйте следующее:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Чтобы просто убить и перезапустить проводник Windows, вам не нужен путь к системной папке, поскольку он уже включен в переменную среды PATH (если только пользователь не испортил ее).
Эта короткая программа уничтожит все экземпляры explorer.exe, а затем перезапустит explorer.exe:
static void Main(string[] args)
{
foreach (Process process in Process.GetProcessesByName("explorer"))
{
if (!process.HasExited)
{
process.Kill();
}
}
Process.Start("explorer.exe");
}