/// <summary> /// Activate the options on the file appender. /// </summary> /// <remarks> /// <para> /// This is part of the <see cref="IOptionHandler"/> delayed object /// activation scheme. The <see cref="ActivateOptions"/> method must /// be called on this object after the configuration properties have /// been set. Until <see cref="ActivateOptions"/> is called this /// object is in an undefined state and must not be used. /// </para> /// <para> /// If any of the configuration properties are modified then /// <see cref="ActivateOptions"/> must be called again. /// </para> /// <para> /// This will cause the file to be opened. /// </para> /// </remarks> override public void ActivateOptions() { base.ActivateOptions(); if (m_securityContext == null) { m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this); } if (m_lockingModel == null) { m_lockingModel = new FileAppender.ExclusiveLock(); } m_lockingModel.CurrentAppender = this; using (SecurityContext.Impersonate(this)) { // john.torjo - we need this to be relative to user's roaming dir // deriving a class from FileAppender and overriding ActivateOptions() is useless, // since what we need to set are private to this class - so easier to just modify this code: //m_fileName = ConvertToFullPath(m_fileName.Trim()); m_fileName = Environment.CurrentDirectory + "\\" + m_fileName.Trim(); } if (m_fileName != null) { SafeOpenFile(m_fileName, m_appendToFile); } else { LogLog.Warn(declaringType, "FileAppender: File option not set for appender [" + Name + "]."); LogLog.Warn(declaringType, "FileAppender: Are you using FileAppender instead of ConsoleAppender?"); } }
/// <summary> /// Activate the options on the file appender. /// </summary> /// <remarks> /// <para> /// This is part of the <see cref="IOptionHandler"/> delayed object /// activation scheme. The <see cref="ActivateOptions"/> method must /// be called on this object after the configuration properties have /// been set. Until <see cref="ActivateOptions"/> is called this /// object is in an undefined state and must not be used. /// </para> /// <para> /// If any of the configuration properties are modified then /// <see cref="ActivateOptions"/> must be called again. /// </para> /// <para> /// This will cause the file to be opened. /// </para> /// </remarks> override public void ActivateOptions() { base.ActivateOptions(); if (m_securityContext == null) { m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this); } if (m_lockingModel == null) { m_lockingModel = new FileAppender.ExclusiveLock(); } m_lockingModel.CurrentAppender = this; if (m_fileName != null) { using (SecurityContext.Impersonate(this)) { m_fileName = ConvertToFullPath(m_fileName.Trim()); } SafeOpenFile(m_fileName, m_appendToFile); } else { LogLog.Warn(declaringType, "FileAppender: File option not set for appender [" + Name + "]."); LogLog.Warn(declaringType, "FileAppender: Are you using FileAppender instead of ConsoleAppender?"); } }
/// <summary> /// Activate the options on the file appender. /// </summary> /// <remarks> /// <para> /// This is part of the <see cref="IOptionHandler"/> delayed object /// activation scheme. The <see cref="ActivateOptions"/> method must /// be called on this object after the configuration properties have /// been set. Until <see cref="ActivateOptions"/> is called this /// object is in an undefined state and must not be used. /// </para> /// <para> /// If any of the configuration properties are modified then /// <see cref="ActivateOptions"/> must be called again. /// </para> /// <para> /// This will cause the file to be opened. /// </para> /// </remarks> override public void ActivateOptions() { base.ActivateOptions(); if (m_securityContext == null) { m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this); } if (m_lockingModel == null) { m_lockingModel = new FileAppender.ExclusiveLock(); } m_lockingModel.CurrentAppender=this; using(SecurityContext.Impersonate(this)) { m_fileName = ConvertToFullPath(m_fileName.Trim()); } if (m_fileName != null) { SafeOpenFile(m_fileName, m_appendToFile); } else { LogLog.Warn("FileAppender: File option not set for appender ["+Name+"]."); LogLog.Warn("FileAppender: Are you using FileAppender instead of ConsoleAppender?"); } }
/// <summary> /// Activate the options on the file appender. /// </summary> /// <remarks> /// <para> /// This is part of the <see cref="IOptionHandler"/> delayed object /// activation scheme. The <see cref="ActivateOptions"/> method must /// be called on this object after the configuration properties have /// been set. Until <see cref="ActivateOptions"/> is called this /// object is in an undefined state and must not be used. /// </para> /// <para> /// If any of the configuration properties are modified then /// <see cref="ActivateOptions"/> must be called again. /// </para> /// <para> /// This will cause the file to be opened. /// </para> /// </remarks> override public void ActivateOptions() { base.ActivateOptions(); if (m_securityContext == null) { m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this); } if (m_lockingModel == null) { m_lockingModel = new FileAppender.ExclusiveLock(); } m_lockingModel.CurrentAppender=this; using(SecurityContext.Impersonate(this)) { // john.torjo - we need this to be relative to user's roaming dir // deriving a class from FileAppender and overriding ActivateOptions() is useless, // since what we need to set are private to this class - so easier to just modify this code: //m_fileName = ConvertToFullPath(m_fileName.Trim()); m_fileName = Environment.CurrentDirectory + "\\" + m_fileName.Trim(); } if (m_fileName != null) { SafeOpenFile(m_fileName, m_appendToFile); } else { LogLog.Warn(declaringType, "FileAppender: File option not set for appender ["+Name+"]."); LogLog.Warn(declaringType, "FileAppender: Are you using FileAppender instead of ConsoleAppender?"); } }