Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用log4j stackoverflow错误登录_Android_Eclipse_Log4j - Fatal编程技术网

Android 使用log4j stackoverflow错误登录

Android 使用log4j stackoverflow错误登录,android,eclipse,log4j,Android,Eclipse,Log4j,我试图在代码中添加日志语句 使用LogConfigurator,我在MainActivity中编写了以下代码- public class MainActivity extends Activity { Logger log = Logger.getLogger(MainActivity.class); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sa

我试图在代码中添加日志语句

使用LogConfigurator,我在MainActivity中编写了以下代码-

    public class MainActivity extends Activity {


    Logger log = Logger.getLogger(MainActivity.class);




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

     LogConfigurator logConfigurator = new LogConfigurator();
     logConfigurator.setFileName(Environment.getExternalStorageDirectory()
             + File.separator + "MyApp" + File.separator + "logs"
             + File.separator + "log4j.txt");
     logConfigurator.setRootLevel(Level.DEBUG);
     logConfigurator.setLevel("org.apache", Level.ERROR);
     logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
     logConfigurator.setMaxFileSize(1024 * 1024 * 5 * 1024 );
     logConfigurator.setImmediateFlush(true);
     logConfigurator.configure();
     log.info("Execution of method onCreate started");


    MyTask mTask = new MyTask(); 
    mTask.execute();
     log.info("Execution of method onCreate ended");



}
它工作正常。但当我加上

        Logger log = Logger.getLogger(JsonConversion.class);
在另一个名为JsonConversion的类和其他一些类中,我在logcat中得到以下错误

    07-11 04:32:27.693: E/AndroidRuntime(3963): FATAL EXCEPTION: main
    07-11 04:32:27.693: E/AndroidRuntime(3963): java.lang.StackOverflowError
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at    org.apache.log4j.CategoryKey.equals(CategoryKey.java:47)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at java.util.Hashtable.get(Hashtable.java:271)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:273)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:247)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at org.apache.log4j.Logger.getLogger(Logger.java:117)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at com.example.news_android_mobile_application_cd.JsonConversion.<init>(JsonConversion.java:25)
    07-11 04:32:27.693: E/AndroidRuntime(3963):     at com.example.news_android_mobile_application_cd.MainActivity.<init>(MainActivity.java:25)
07-1104:32:27.693:E/AndroidRuntime(3963):致命异常:main
07-11 04:32:27.693:E/AndroidRuntime(3963):java.lang.StackOverflower错误
07-11 04:32:27.693:E/AndroidRuntime(3963):位于org.apache.log4j.CategoryKey.equals(CategoryKey.java:47)
07-11 04:32:27.693:E/AndroidRuntime(3963):在java.util.Hashtable.get(Hashtable.java:271)
07-11 04:32:27.693:E/AndroidRuntime(3963):位于org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:273)
07-11 04:32:27.693:E/AndroidRuntime(3963):位于org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:247)
07-11 04:32:27.693:E/AndroidRuntime(3963):位于org.apache.log4j.LogManager.getLogger(LogManager.java:228)
07-11 04:32:27.693:E/AndroidRuntime(3963):位于org.apache.log4j.Logger.getLogger(Logger.java:117)
07-11 04:32:27.693:E/AndroidRuntime(3963):在com.example.news\u android\u mobile\u application\u cd.jsonversion.(jsonversion.java:25)
07-11 04:32:27.693:E/AndroidRuntime(3963):在com.example.news\u android\u mobile\u application\u cd.MainActivity.(MainActivity.java:25)
我添加了log4j-1.2.17.jar和android-logging-log4j-1.0.3.jar。
有人能帮我吗?

我不知道确切的答案,但以下可能是原因之一-

  • 我的程序中有静态方法,所以为了在这些方法中使用log,我使它们成为非静态的,并在不同的类中创建了不同的对象,这导致了stackoverflow
  • 我将log变量设置为静态,这就完成了我的工作
    还有一件事,应该记住文件的大小。如果要写入的数据大小超过了文件大小,则会创建多个文件。

    Android手机上真的有5GB的文件吗?另外,
    1024*1024*5*1024
    不是你想的那样,因为计算超过了
    Integer.MAX\u VALUE
    @EricJablow耶!那是我的错误。我现在的大小是5 KB(5*1024),但错误仍然是一样的!