TaskLoggingHelper Класс

Определение

Вспомогательный класс ведения журнала, который содержит все методы для ведения журнала, используемые задачами.Helper logging class - contains all the logging methods used by tasks. Объект TaskLoggingHelper передается в каждую задачу MSBuild.A TaskLoggingHelper object is passed to every task by MSBuild. Для задач, производных от класса Task, он предоставляется через свойство Log.For tasks that derive from the Task class, it is provided in the Log property. Этот класс является потокобезопасным, то есть задачи могут записывать данные в журнал из любых потоков.This class is thread safe: tasks can log from any threads.

public ref class TaskLoggingHelper : MarshalByRefObject
public ref class TaskLoggingHelper
public class TaskLoggingHelper : MarshalByRefObject
public class TaskLoggingHelper
type TaskLoggingHelper = class
    inherit MarshalByRefObject
type TaskLoggingHelper = class
Public Class TaskLoggingHelper
Inherits MarshalByRefObject
Public Class TaskLoggingHelper
Наследование
TaskLoggingHelper
Наследование
TaskLoggingHelper
Производный

Примеры

В следующем примере показан код для задачи, которая создает один или несколько каталогов.The following example shows the code for a task that creates one or more directories.

using System;
using System.IO;
using System.Security;
using System.Collections;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;

namespace Microsoft.Build.Tasks
{
    /*
     * Class: MakeDir
     *
     * An MSBuild task that creates one or more directories.
     *
     */
    public class MakeDir : Task
    {
        // The Required attribute indicates the following to MSBuild:
        //	     - if the parameter is a scalar type, and it is not supplied, fail the build immediately
        //	     - if the parameter is an array type, and it is not supplied, pass in an empty array
        // In this case the parameter is an array type, so if a project fails to pass in a value for the
            // Directories parameter, the task will get invoked, but this implementation will do nothing,
            // because the array will be empty.
        [Required]
            // Directories to create.
        public ITaskItem[] Directories
        {
            get
            {
                return directories;
            }

            set
            {
                directories = value;
            }
        }

        // The Output attribute indicates to MSBuild that the value of this property can be gathered after the
        // task has returned from Execute(), if the project has an <Output> tag under this task's element for
        // this property.
        [Output]
        // A project may need the subset of the inputs that were actually created, so make that available here.
        public ITaskItem[] DirectoriesCreated
        {
            get
            {
                return directoriesCreated;
            }
        }

        private ITaskItem[] directories;
        private ITaskItem[] directoriesCreated;

        /// <summary>
        /// Execute is part of the Microsoft.Build.Framework.ITask interface.
        /// When it's called, any input parameters have already been set on the task's properties.
        /// It returns true or false to indicate success or failure.
        /// </summary>
        public override bool Execute()
        {
            ArrayList items = new ArrayList();
            foreach (ITaskItem directory in Directories)
            {
                // ItemSpec holds the filename or path of an Item
                if (directory.ItemSpec.Length > 0)
                {
                    try
                    {
                        // Only log a message if we actually need to create the folder
                        if (!Directory.Exists(directory.ItemSpec))
                        {
                            Log.LogMessage(MessageImportance.Normal, "Creating directory " + directory.ItemSpec);
                            Directory.CreateDirectory(directory.ItemSpec);
                        }

                        // Add to the list of created directories
                        items.Add(directory);
                    }
                    // If a directory fails to get created, log an error, but proceed with the remaining
                    // directories.
                    catch (Exception ex)
                    {
                        if (ex is IOException
                            || ex is UnauthorizedAccessException
                            || ex is PathTooLongException
                            || ex is DirectoryNotFoundException
                            || ex is SecurityException)
                        {
                            Log.LogError("Error trying to create directory " + directory.ItemSpec + ". " + ex.Message);
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
            }

            // Populate the "DirectoriesCreated" output items.
            directoriesCreated = (ITaskItem[])items.ToArray(typeof(ITaskItem));

            // Log.HasLoggedErrors is true if the task logged any errors -- even if they were logged
            // from a task's constructor or property setter. As long as this task is written to always log an error
            // when it fails, we can reliably return HasLoggedErrors.
            return !Log.HasLoggedErrors;
        }
    }
}

Конструкторы

TaskLoggingHelper(IBuildEngine, String)

Открытый конструктор, который облегчает запись сообщений в журнал фабриками задач.Public constructor which can be used by task factories to assist them in logging messages.

TaskLoggingHelper(ITask)

Открытый конструкторpublic constructor

Свойства

BuildEngine

Свойство для доступа к модулю сборки, которое мы получаем из экземпляра задачиShortcut property for getting our build engine - we retrieve it from the task instance

HasLoggedErrors

Регистрировала ли задача ошибки через этот вспомогательный объект ведения журнала?Has the task logged any errors through this logging helper object?

HelpKeywordPrefix

Возвращает или задает префикс, используемый для составления ключевых слов справки из имен строковых ресурсов.Gets or sets the prefix used to compose help keywords from string resource names.

TaskName

Получает имя родительской задачи.Gets the name of the parent task.

TaskResources

Используется для загрузки ресурсов, зависящих от языка и региональных параметров.Used to load culture-specific resources. Если производные классы используют локализованные строки, они должны регистрировать собственные ресурсы во время создания или через это свойство.Derived classes should register their resources either during construction, or via this property, if they have localized strings.

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
ExtractMessageCode(String, String)

Извлекает код сообщения (при его наличии), который размещается в начале полученной строки сообщения.Extracts the message code (if any) prefixed to the given message string. Чтобы успешно распознаваться, префиксы кода сообщения должны соответствовать следующему регулярному выражению .NET: ^\s [A-Za-z]+\d+:\s. Является потокобезопасным.Message code prefixes must match the following .NET regular expression in order to be recognized: ^\s [A-Za-z]+\d+:\s Thread safe.

FormatResourceString(String, Object[])

Загружает заданную строку ресурса и при необходимости форматирует ее с использованием указанных аргументов.Loads the specified resource string and optionally formats it using the given arguments. Для форматирования используются язык и региональные параметры текущего потока.The current thread's culture is used for formatting.

Требует, чтобы задача владельца зарегистрировала свои ресурсы с помощью конструктора базового класса Task (или TaskMarshalByRef) или свойства Task.TaskResources (или AppDomainIsolatedTask.TaskResources).Requires the owner task to have registered its resources either via the Task (or TaskMarshalByRef) base class constructor, or the Task.TaskResources (or AppDomainIsolatedTask.TaskResources) property.

Потокобезопасный.Thread safe.

FormatString(String, Object[])

Форматирует заданную строку с использованием переданных переменных аргументов.Formats the given string using the variable arguments passed in. Для форматирования используются язык и региональные параметры текущего потока.The current thread's culture is used for formatting. Потокобезопасный.Thread safe.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetLifetimeService()
Является устаревшей.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetResourceMessage(String)

Получает сообщения из ресурса в библиотеке задач.Get the message from resource in task library. Потокобезопасный.Thread safe.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
InitializeLifetimeService()

InitializeLifetimeService вызывается при активации удаленного объекта.InitializeLifetimeService is called when the remote object is activated. Этот метод определяет, какое будет время существования объекта.This method will determine how long the lifetime for the object will be. Потокобезопасный.Thread safe. Однако InitializeLifetimeService и MarkAsInactive должны вызываться только в этом порядке, вместе или не вызываться вообще, причем не более одного раза.However, InitializeLifetimeService and MarkAsInactive should only be called in that order, together or not at all, and no more than once.

InitializeLifetimeService()
Является устаревшей.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
LogCommandLine(MessageImportance, String)

Заносит в журнал командную строку для вызова базового средства, исполняемого файла или команды оболочки задачи, учитывая указанный уровень важности.Logs the command line for a task's underlying tool/executable/shell command, using the given importance level. Потокобезопасный.Thread safe.

LogCommandLine(String)

Заносит в журнал командную строку для запуска базового средства, исполняемого файла или команды оболочки задачи.Logs the command line for a task's underlying tool/executable/shell command. Потокобезопасный.Thread safe.

LogCriticalMessage(String, String, String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал важное сообщение, используя указанную строку и другие сведения о сообщении.Logs a critical message using the specified string and other message details. Потокобезопасный.Thread safe.

LogError(String, Object[])

Заносит в журнал ошибку, используя указанную строку.Logs an error using the specified string. Потокобезопасный.Thread safe.

LogError(String, String, String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал ошибку, используя указанную строку и другие сведения об ошибке.Logs an error using the specified string and other error details. Потокобезопасный.Thread safe.

LogErrorFromException(Exception)

Заносит в журнал ошибку, используя сообщение из указанного контекста исключения.Logs an error using the message from the given exception context. Стек вызовов не будет отображаться.No callstack will be shown. Потокобезопасный.Thread safe.

LogErrorFromException(Exception, Boolean)

Заносит в журнал ошибку, используя сообщение (и при необходимости трассировку стека) из указанного контекста исключения.Logs an error using the message (and optionally the stack-trace) from the given exception context. Потокобезопасный.Thread safe.

LogErrorFromException(Exception, Boolean, Boolean, String)

Заносит в журнал ошибку, используя это сообщение, трассировку стека из указанного исключения (необязательно) и внутренние исключения (необязательно).Logs an error using the message, and optionally the stack-trace from the given exception, and optionally inner exceptions too. Потокобезопасный.Thread safe.

LogErrorFromResources(String, Object[])

Регистрирует в журнале ошибку, используя заданную строку ресурса.Logs an error using the specified resource string. Потокобезопасный.Thread safe.

LogErrorFromResources(String, String, String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал ошибку, используя заданную строку ресурса и другие сведения об ошибке.Logs an error using the specified resource string and other error details. Потокобезопасный.Thread safe.

LogErrorWithCodeFromResources(String, Object[])

Регистрирует в журнале ошибку, используя заданную строку ресурса.Logs an error using the specified resource string. Если сообщение дополнено префиксом с кодом ошибки, этот код извлекается и заносится в журнал вместе с сообщением.If the message has an error code prefixed to it, the code is extracted and logged with the message. Если указан префикс с ключевым словом справки, это ключевое слово справки для интегрированной среды разработки узла также заносится в журнал вместе с сообщением.If a help keyword prefix has been provided, a help keyword for the host IDE is also logged with the message. Ключевое слово справки формируется путем добавления к префиксу имени ресурса строки.The help keyword is composed by appending the string resource name to the prefix.

Задача может предоставить префикс ключевого слова справки с помощью конструктора базового класса Task (или TaskMarshalByRef) или свойства Task.HelpKeywordPrefix (или AppDomainIsolatedTask.HelpKeywordPrefix).A task can provide a help keyword prefix either via the Task (or TaskMarshalByRef) base class constructor, or the Task.HelpKeywordPrefix (or AppDomainIsolatedTask.HelpKeywordPrefix) property.

Потокобезопасный.Thread safe.

LogErrorWithCodeFromResources(String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал ошибку, используя заданную строку ресурса и другие сведения об ошибке.Logs an error using the specified resource string and other error details. Если сообщение дополнено префиксом с кодом ошибки, этот код извлекается и заносится в журнал вместе с сообщением.If the message has an error code prefixed, the code is extracted and logged with the message. Если указан префикс с ключевым словом справки, это ключевое слово справки для интегрированной среды разработки узла также заносится в журнал вместе с сообщением.If a help keyword prefix has been provided, a help keyword for the host IDE is also logged with the message. Ключевое слово справки формируется путем добавления к префиксу имени ресурса строки для сообщения об ошибке.The help keyword is composed by appending the error message resource string name to the prefix.

Задача может предоставить префикс ключевого слова справки с помощью конструктора базового класса Task (или TaskMarshalByRef) или свойства Task.HelpKeywordPrefix (или AppDomainIsolatedTask.HelpKeywordPrefix).A task can provide a help keyword prefix either via the Task (or TaskMarshalByRef) base class constructor, or the Task.HelpKeywordPrefix (or AppDomainIsolatedTask.HelpKeywordPrefix) property.

Потокобезопасный.Thread safe.

LogExternalProjectFinished(String, String, String, Boolean)

Небольшой вспомогательный модуль для сохранения в журнал пользовательского события сборки ExternalProjectFinished.Small helper for logging the custom ExternalProjectFinished build event. Потокобезопасный.Thread safe.

LogExternalProjectStarted(String, String, String, String)

Небольшой вспомогательный модуль для сохранения в журнал пользовательского события сборки ExternalProjectStarted. Является потокобезопасным.Small helper for logging the custom ExternalProjectStarted build event Thread safe.

LogMessage(MessageImportance, String, Object[])

Заносит в журнал сообщение с заданной важностью, используя указанную строку.Logs a message of the given importance using the specified string. Потокобезопасный.Thread safe.

LogMessage(String, Object[])

Заносит сообщение в журнал, используя указанную строку.Logs a message using the specified string. Потокобезопасный.Thread safe.

LogMessage(String, String, String, String, Int32, Int32, Int32, Int32, MessageImportance, String, Object[])

Заносит в журнал сообщение, используя указанную строку и другие сведения о сообщении.Logs a message using the specified string and other message details. Потокобезопасный.Thread safe.

LogMessageFromResources(MessageImportance, String, Object[])

Заносит в журнал сообщение с заданной важностью, используя указанную строку ресурса.Logs a message of the given importance using the specified resource string. Потокобезопасный.Thread safe.

LogMessageFromResources(String, Object[])

Заносит в журнал сообщение, используя указанную строку ресурса.Logs a message using the specified resource string. Потокобезопасный.Thread safe.

LogMessageFromText(String, MessageImportance)

Заносит в журнал сообщение, ошибку или предупреждение на основе указанной строки текста.Logs an error/warning/message from the given line of text. Ошибки и предупреждения регистрируются только для тех строк, которые соответствуют определенному (каноническому) формату, а все остальные строки обрабатываются как сообщения.Errors/warnings are only logged for lines that fit a particular (canonical) format -- all other lines are treated as messages. Потокобезопасный.Thread safe.

LogMessagesFromFile(String)

Заносит в журнал ошибки, предупреждения и сообщения для каждой строки текста в заданном файле.Logs errors/warnings/messages for each line of text in the given file. Ошибки и предупреждения регистрируются только для тех строк, которые соответствуют определенному (каноническому) формату, а все остальные строки обрабатываются как сообщения.Errors/warnings are only logged for lines that fit a particular (canonical) format -- the remaining lines are treated as messages. Потокобезопасный.Thread safe.

LogMessagesFromFile(String, MessageImportance)

Заносит в журнал ошибки, предупреждения и сообщения для каждой строки текста в заданном файле.Logs errors/warnings/messages for each line of text in the given file. Ошибки и предупреждения регистрируются только для тех строк, которые соответствуют определенному (каноническому) формату, а все остальные строки обрабатываются как сообщения.Errors/warnings are only logged for lines that fit a particular (canonical) format -- the remaining lines are treated as messages. Потокобезопасный.Thread safe.

LogMessagesFromStream(TextReader, MessageImportance)

Заносит в журнал ошибки, предупреждения и сообщения для каждой строки текста в заданном потоке.Logs errors/warnings/messages for each line of text in the given stream. Ошибки и предупреждения регистрируются только для тех строк, которые соответствуют определенному (каноническому) формату, а все остальные строки обрабатываются как сообщения.Errors/warnings are only logged for lines that fit a particular (canonical) format -- the remaining lines are treated as messages. Потокобезопасный.Thread safe.

LogTelemetry(String, IDictionary<String,String>)

Заносит в журнал данные телеметрии с указанными именем и свойствами события.Logs telemetry with the specified event name and properties.

LogWarning(String, Object[])

Заносит в журнал предупреждение, используя заданную строку.Logs a warning using the specified string. Потокобезопасный.Thread safe.

LogWarning(String, String, String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал предупреждение, используя указанную строку и другие сведения о предупреждении.Logs a warning using the specified string and other warning details. Потокобезопасный.Thread safe.

LogWarningFromException(Exception)

Заносит в журнал предупреждение, используя сообщение из заданного контекста исключения.Logs a warning using the message from the given exception context. Потокобезопасный.Thread safe.

LogWarningFromException(Exception, Boolean)

Заносит в журнал предупреждение, используя сообщение и при необходимости трассировку стека из заданного контекста исключения.Logs a warning using the message (and optionally the stack-trace) from the given exception context. Потокобезопасный.Thread safe.

LogWarningFromResources(String, Object[])

Заносит в журнал предупреждение, используя заданную строку ресурса.Logs a warning using the specified resource string. Потокобезопасный.Thread safe.

LogWarningFromResources(String, String, String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал предупреждение, используя заданную строку ресурса и другие сведения о предупреждении.Logs a warning using the specified resource string and other warning details. Потокобезопасный.Thread safe.

LogWarningWithCodeFromResources(String, Object[])

Заносит в журнал предупреждение, используя заданную строку ресурса.Logs a warning using the specified resource string. Если сообщение дополнено префиксом с кодом предупреждения, этот код извлекается и заносится в журнал вместе с сообщением.If the message has a warning code prefixed to it, the code is extracted and logged with the message. Если указан префикс с ключевым словом справки, это ключевое слово справки для интегрированной среды разработки узла также заносится в журнал вместе с сообщением.If a help keyword prefix has been provided, a help keyword for the host IDE is also logged with the message. Ключевое слово справки формируется путем добавления к префиксу имени ресурса строки.The help keyword is composed by appending the string resource name to the prefix.

Задача может предоставить префикс ключевого слова справки с помощью конструктора базового класса Task (или TaskMarshalByRef) или свойства Task.HelpKeywordPrefix (или AppDomainIsolatedTask.HelpKeywordPrefix).A task can provide a help keyword prefix either via the Task (or TaskMarshalByRef) base class constructor, or the Task.HelpKeywordPrefix (or AppDomainIsolatedTask.HelpKeywordPrefix) property.

Потокобезопасный.Thread safe.

LogWarningWithCodeFromResources(String, String, Int32, Int32, Int32, Int32, String, Object[])

Заносит в журнал предупреждение, используя заданную строку ресурса и другие сведения о предупреждении.Logs a warning using the specified resource string and other warning details. Если сообщение дополнено кодом предупреждения, этот код извлекается и заносится в журнал вместе с сообщением.If the message has a warning code, the code is extracted and logged with the message. Если указан префикс с ключевым словом справки, это ключевое слово справки для интегрированной среды разработки узла также заносится в журнал вместе с сообщением.If a help keyword prefix has been provided, a help keyword for the host IDE is also logged with the message. Ключевое слово справки формируется путем добавления к префиксу имени ресурса строки для сообщения с предупреждением.The help keyword is composed by appending the warning message resource string name to the prefix.

Задача может предоставить префикс ключевого слова справки с помощью конструктора базового класса Task (или TaskMarshalByRef) или свойства Task.HelpKeywordPrefix (или AppDomainIsolatedTask.HelpKeywordPrefix).A task can provide a help keyword prefix either via the Task (or TaskMarshalByRef) base class constructor, or the Task.HelpKeywordPrefix (or AppDomainIsolatedTask.HelpKeywordPrefix) property.

Потокобезопасный.Thread safe.

MarkAsInactive()

Уведомляет этот объект о том, что его работа завершена.Notifies this object that its work is done. Потокобезопасный.Thread safe. Однако InitializeLifetimeService и MarkAsInactive должны вызываться только в этом порядке, вместе или не вызываться вообще, причем не более одного раза.However, InitializeLifetimeService and MarkAsInactive should only be called in that order, together or not at all, and no more than once.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к