[
https://issues.apache.org/jira/browse/LOG4NET-247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dominik Psenner closed LOG4NET-247.
-----------------------------------
Resolution: Invalid
Please ask questions in one of the log4net mailing lists.
I have looked at your example: log4net is never initialized, nore invoked to
log messages. Therefore I believe that your example does not use log4net for
what it was designed for. Feel free to reopen the issue if you want to explain
your usecase for log4net.
> Adding to log4net.GlobalContext.Properties causes UnhandledException filter
> to fail.
> ------------------------------------------------------------------------------------
>
> Key: LOG4NET-247
> URL: https://issues.apache.org/jira/browse/LOG4NET-247
> Project: Log4net
> Issue Type: Bug
> Affects Versions: 1.2.10
> Environment: Windows XP, SP2.
> Reporter: Rob Woerner
> Priority: Blocker
> Fix For: 1.2 Maintenance Release
>
>
> I have an application that registers for
> AppDomain.CurrentDomain.UnhandledException and Application.ThreadException.
> The handlers weren't getting triggered when exceptions occurred. I have
> narrowed it down to this statement:
> log4net.GlobalContext.Properties["RFN"] = "myfile.log";
> If I take this statement out, exceptions trigger the global exception
> handler(s) as expected. After debugging through the code, I see absolutely
> nothing that might cause this problem. The Properties property is never even
> looked at again. This behavior is bizarre and really interferes with
> debugging. It doesn't seem to occur on all systems.
> I have created a default WinForms app that does nothing except call the
> statement above and generate an exception. If anyone has any idea what might
> cause this, I'd love to hear it. Sample code below. All files not given here
> are the default files generated by the compiler.
> ----------- CrashTest.csproj ----------------------
> <?xml version="1.0" encoding="utf-8"?>
> <Project ToolsVersion="3.5" DefaultTargets="Build"
> xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> <PropertyGroup>
> <Configuration Condition=" '$(Configuration)' == ''
> ">Debug</Configuration>
> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
> <ProductVersion>9.0.30729</ProductVersion>
> <SchemaVersion>2.0</SchemaVersion>
> <ProjectGuid>{0F520198-7D51-400A-A373-821F35462CC4}</ProjectGuid>
> <OutputType>WinExe</OutputType>
> <AppDesignerFolder>Properties</AppDesignerFolder>
> <RootNamespace>CrashTest</RootNamespace>
> <AssemblyName>CrashTest</AssemblyName>
> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
> <FileAlignment>512</FileAlignment>
> </PropertyGroup>
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
> ">
> <DebugSymbols>true</DebugSymbols>
> <DebugType>full</DebugType>
> <Optimize>false</Optimize>
> <OutputPath>bin\Debug\</OutputPath>
> <DefineConstants>DEBUG;TRACE</DefineConstants>
> <ErrorReport>prompt</ErrorReport>
> <WarningLevel>4</WarningLevel>
> </PropertyGroup>
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
> 'Release|AnyCPU' ">
> <DebugType>pdbonly</DebugType>
> <Optimize>true</Optimize>
> <OutputPath>bin\Release\</OutputPath>
> <DefineConstants>TRACE</DefineConstants>
> <ErrorReport>prompt</ErrorReport>
> <WarningLevel>4</WarningLevel>
> </PropertyGroup>
> <ItemGroup>
> <Reference Include="log4net, Version=1.2.10.0, Culture=neutral,
> PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
> <SpecificVersion>False</SpecificVersion>
> <HintPath>.\log4net.dll</HintPath>
> </Reference>
> <Reference Include="System" />
> <Reference Include="System.Core">
> <RequiredTargetFramework>3.5</RequiredTargetFramework>
> </Reference>
> <Reference Include="System.Xml.Linq">
> <RequiredTargetFramework>3.5</RequiredTargetFramework>
> </Reference>
> <Reference Include="System.Data.DataSetExtensions">
> <RequiredTargetFramework>3.5</RequiredTargetFramework>
> </Reference>
> <Reference Include="System.Data" />
> <Reference Include="System.Deployment" />
> <Reference Include="System.Drawing" />
> <Reference Include="System.Windows.Forms" />
> <Reference Include="System.Xml" />
> </ItemGroup>
> <ItemGroup>
> <Compile Include="Form1.cs">
> <SubType>Form</SubType>
> </Compile>
> <Compile Include="Form1.Designer.cs">
> <DependentUpon>Form1.cs</DependentUpon>
> </Compile>
> <Compile Include="Program.cs" />
> <Compile Include="Properties\AssemblyInfo.cs" />
> <EmbeddedResource Include="Form1.resx">
> <DependentUpon>Form1.cs</DependentUpon>
> </EmbeddedResource>
> <EmbeddedResource Include="Properties\Resources.resx">
> <Generator>ResXFileCodeGenerator</Generator>
> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
> <SubType>Designer</SubType>
> </EmbeddedResource>
> <Compile Include="Properties\Resources.Designer.cs">
> <AutoGen>True</AutoGen>
> <DependentUpon>Resources.resx</DependentUpon>
> </Compile>
> <None Include="Properties\Settings.settings">
> <Generator>SettingsSingleFileGenerator</Generator>
> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
> </None>
> <Compile Include="Properties\Settings.Designer.cs">
> <AutoGen>True</AutoGen>
> <DependentUpon>Settings.settings</DependentUpon>
> <DesignTimeSharedInput>True</DesignTimeSharedInput>
> </Compile>
> </ItemGroup>
> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
> <!-- To modify your build process, add your task inside one of the targets
> below and uncomment it.
> Other similar extension points exist, see Microsoft.Common.targets.
> <Target Name="BeforeBuild">
> </Target>
> <Target Name="AfterBuild">
> </Target>
> -->
> </Project>
> --------------- Program.cs ---------------------------
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Windows.Forms;
> namespace CrashTest
> {
> static class Program
> {
> /// <summary>
> /// The main entry point for the application.
> /// </summary>
> [STAThread]
> static void Main()
> {
>
> Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
> AppDomain.CurrentDomain.UnhandledException += new
> UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
> Application.ThreadException += new
> System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
> Application.EnableVisualStyles();
> Application.SetCompatibleTextRenderingDefault(false);
> Application.Run(new Form1());
> }
> static void CurrentDomain_UnhandledException(object sender,
> UnhandledExceptionEventArgs e)
> {
> MessageBox.Show("Crash One!");
> }
> static void Application_ThreadException(object sender,
> System.Threading.ThreadExceptionEventArgs e)
> {
> MessageBox.Show("Crash Two!");
> }
> }
> }
> ----------------- Form1.cs --------------------
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
> namespace CrashTest
> {
> public partial class Form1 : Form
> {
> public Form1()
> {
> log4net.GlobalContext.Properties["RFN"] = "foo";
> InitializeComponent();
> }
> private void button1_Click(object sender, EventArgs e)
> {
> StartCrash();
> }
> void StartCrash()
> {
> System.Threading.Thread t = new
> System.Threading.Thread(EndCrash);
> t.IsBackground = true;
> t.Start();
> }
> void EndCrash()
> {
> string s = null;
> s.Clone();
> }
> }
> }
> -------------- Form1.Designer.cs -------------------------------
> namespace CrashTest
> {
> partial class Form1
> {
> /// <summary>
> /// Required designer variable.
> /// </summary>
> private System.ComponentModel.IContainer components = null;
> /// <summary>
> /// Clean up any resources being used.
> /// </summary>
> /// <param name="disposing">true if managed resources should be
> disposed; otherwise, false.</param>
> protected override void Dispose(bool disposing)
> {
> if (disposing && (components != null))
> {
> components.Dispose();
> }
> base.Dispose(disposing);
> }
> #region Windows Form Designer generated code
> /// <summary>
> /// Required method for Designer support - do not modify
> /// the contents of this method with the code editor.
> /// </summary>
> private void InitializeComponent()
> {
> this.button1 = new System.Windows.Forms.Button();
> this.SuspendLayout();
> //
> // button1
> //
> this.button1.Location = new System.Drawing.Point(105,
> 99);
> this.button1.Name = "button1";
> this.button1.Size = new System.Drawing.Size(75, 35);
> this.button1.TabIndex = 0;
> this.button1.Text = "Crash!";
> this.button1.UseVisualStyleBackColor = true;
> this.button1.Click += new
> System.EventHandler(this.button1_Click);
> //
> // Form1
> //
> this.AutoScaleDimensions = new System.Drawing.SizeF(8F,
> 16F);
> this.AutoScaleMode =
> System.Windows.Forms.AutoScaleMode.Font;
> this.ClientSize = new System.Drawing.Size(292, 260);
> this.Controls.Add(this.button1);
> this.Name = "Form1";
> this.Text = "Form1";
> this.ResumeLayout(false);
> }
> #endregion
> private System.Windows.Forms.Button button1;
> }
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira