问题列表 - 第4062页

从库代码记录到应用程序日志的策略?

我在哪里工作,我们使用Log4j进行Web应用程序日志记录.log4j.jar位于应用程序级别,而不是容器级别.我们正在使用每日滚动文件appender.我们的log4j.properties文件根据应用程序包名称定义了appender,因此只有应用程序包及其下面的类才会记录到我们应用程序的日志文件中.

在我的应用程序中,我正在使用一些支持类扩展我们的框架.这些类不在应用程序的包中,因为它们不是我的应用程序所独有的,最终会被制作成jar库以供其他应用程序使用.因此,我的日志记录语句不会被我的应用程序的appender选中,因此不会记录到我的应用程序的日志文件中.

我想允许jar中的类使用类登录到应用程序的日志文件.但是,如果我根据我的类名在我的应用程序的log4j属性文件中创建一个appender,我怀疑当多个应用程序使用我的jar时,由于log4j.properties文件中的类名相同,只有一个应用程序日志文件会收到我的jar的日志记录语句,它将从使用该jar的每个应用程序接收所有日志记录语句.我认为情况就是这样,因为我们使用静态Logger.getLogger()调用来检索记录器.

我首先想知道我的恐惧是否有效,如果真的是当同一个或不同容器中的多个Web应用程序同时使用我的jar时会发生什么.

我还想知道这种行为是否存在"边界"变化.例如,无论log4j.jar是容器级jar还是app级jar,或者每个容器是否在单独的JVM中运行,是否存在此问题?

最后,如果是这种情况,我想知道我应该用什么策略来解决这个问题.

提前致谢!

java logging log4j

6
推荐指数
1
解决办法
841
查看次数

将UTF8数据导出到Excel的最佳方法是什么?

所以我们有这个支持UTF8数据的网络应用程序.万岁UTF8.我们可以将用户提供的数据导出为CSV没问题 - 此时它仍然是UTF8.问题是当你在Excel中打开一个典型的UTF8 CSV时,它会将其读作ANSII编码文本,并因此尝试读取两个字节的字符,如ø和ü作为两个单独的字符,最终会失败.

所以我已经做了一些挖掘(Intervals人员在这里有一个有趣的帖子),并且有一些有限的,如果有可笑的烦人选择.其中:

  • 提供一个UTF-16 Little Endian TSV文件,Excel将正确解释,但不支持多行数据
  • 使用Excel mime类型或文件扩展名在HTML表格中提供数据(不确定此选项是否支持UTF8)
  • 在理论上,有三种或四种方法可以将XML数据导入各种最新版本的excel,并且这些方法将支持UTF8.SpreadsheetML,使用自定义XSLT,或通过模板生成新的Excel XML格式.

看起来无论如何,我可能会继续为那些不使用它的人提供一个普通的CSV文件,以及一个单独的Excel下载选项.

生成那个能正确支持UTF8的Just-For-Excel文件的最简单方法是什么,亲爱的Stack Overflowers?如果最简单的选项仅支持最新版本的Excel,那仍然是有意义的.

我在Rails堆栈上执行此操作,但很奇怪.Net-ers和任何框架上的人员如何处理这个问题.我自己在几个不同的环境中工作,这绝对是一个将再次出现的问题.

更新2010-10-22:我们在时间跟踪系统Tempo中使用Ruport gem在我第一次发布此问题时提供CSV导出.我的一个同事Erik Hollensbee为Ruport提供了一个快速过滤器,为我们提供了实际的Excel XSL输出,我想我会在这里分享其他任何红宝石:

require 'rubygems'
require 'ruport'
require 'spreadsheet'
require 'stringio'

Spreadsheet.client_encoding = "UTF-8"

include Ruport::Data

class Ruport::Formatter::Excel < Ruport::Formatter
  renders :excel, :for => Ruport::Controller::Table

  def output
    retval = StringIO.new

    if options.workbook
      book = options.workbook
    else
      book = Spreadsheet::Workbook.new
    end

    if options.worksheet_name
      book_args = { :name => options.worksheet_name }
    else
      book_args = { }
    end

    sheet = …
Run Code Online (Sandbox Code Playgroud)

xml csv excel utf-8 utf-16

27
推荐指数
3
解决办法
3万
查看次数

如何保护java.lang.Object的受保护方法不受子类的影响?

该关键字protected授予对同一包和子类中的类的访问权限(http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html).

现在,每个类都有java.lang.Object超类(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html).

因此,我得出结论,每个班级都可以访问其java.lang.Object方法,即使它们是protected.

看一下下面的例子:

public class Testclass {
  public Object getOne() throws CloneNotSupportedException {
    return this.clone();
  }
  public Object getTwo() throws CloneNotSupportedException {
    return ((Object) this).clone();
  }
}

虽然getOne()编译很好,但getTwo()给出了

Testclass.java:6: clone() has protected access in java.lang.Object
        return ((Object) this).clone();

我既不明白为什么getTwo()不编译也不知道有什么区别(关于java.lang.Objects成员的访问)getOne().

java protected object

12
推荐指数
2
解决办法
2万
查看次数

GWT动态加载使用GWT.create()和String文字而不是类文字

GWT.create()是GWT中的反射等价物,但它只接受类文字,而不是类名的完全限定String.如何使用GWT.create()动态创建带有字符串的类?

根据许多GWT论坛帖子,这是不可能的,但是如何在Rocket-GWT(http://code.google.com/p/rocket-gwt/wiki/Ioc)和Gwittir(http://代码)等框架中完成.google.com/p/gwittir/wiki/Introspection)

gwt

15
推荐指数
4
解决办法
3万
查看次数

MSSQL2000:使用存储过程结果作为sql中的表

假设我有'myStoredProcedure',它将Id作为参数,并返回一个信息表.

是否可以编写类似于此的SQL语句?

SELECT
    MyColumn
FROM
   Table-ify('myStoredProcedure ' + @MyId) AS [MyTable]
Run Code Online (Sandbox Code Playgroud)

我觉得它不是,但在遗留代码和链接服务器表的情况下,它会非常有用

谢谢!

stored-procedures sql-server-2000

4
推荐指数
1
解决办法
2095
查看次数

使用SendMessage进行线程通信

我的问题是:我如何使用SendMessage()来实现两个线程之间的线程通信,一个带有窗口(GUI),另一个没有窗口?

问题是SendMessage()需要一个句柄(HWND)?

关于我的项目的另一个细节:两个线程,一个运行托管代码(一个带有用户界面),另一个运行本机代码(没有窗口的代码)

非常感谢你!

multithreading communication sendmessage

5
推荐指数
1
解决办法
1万
查看次数

没有C++的CAD/CAM

是否可以在不使用C++的情况下进行CAD/CAM软件?我的公司使用c/C++开发了他们的软件,但这已经超过10年了.今天,有许多遗留代码切换会迫使我们摆脱,但我想知道实际的风险是什么.我们有很多用于刀具路径计算,特征识别和模拟以及3D渲染的数学算法,我想知道C#是否可以处理所有这些而没有很大的性能损失.

在c#中重写这样的算法是不是乌托邦,或者该语言是否只处理UI.我们不是在谈论游戏开发(Halo 3或Call of Duty),那么CAD/CAM真正需要多少处理?

在这件事上有人可以启发我吗?我的大多数同事都是硬核C++程序员,虽然我用c ++编程我喜欢.NET,但除了基本用户界面之外我很难向他们销售.NET.考虑在这样的领域中切换到.NET是否有意义,或者这不是一个明智的想法?

谢谢

c# c++ vb.net cad

3
推荐指数
1
解决办法
3657
查看次数

是否可以在Ruby中定义带有可选参数的块?

我正在尝试动态定义调用另一个带有options参数的函数的函数:

class MyClass
  ["hour", "minute", "second"].each do |interval|
    define_method "get_#{interval}" do |args|
      some_helper(interval, args)
    end
  end
  def some_helper(interval, options={})
    # Do something, with arguments
  end
end
Run Code Online (Sandbox Code Playgroud)

我希望能够以这两种方式在MyClass上调用不同的方法(使用和不使用可选参数):

mc = MyClass.new
mc.get_minute( :first_option => "foo", :second_option => "bar")
mc.get_minute  # This fails with: warning: multiple values for a block parameter (0 for 1)
Run Code Online (Sandbox Code Playgroud)

在第二次拨打分钟时,我看到了这个警告:

警告:块参数的多个值(0表示1)

  1. 有没有办法为"get_*"方法编写块,以便不会出现此警告?
  2. 我在滥用define_method吗?

ruby

7
推荐指数
2
解决办法
5338
查看次数

在Python dict中访问兄弟字典值的最有效方法是什么?

在Python中,我有一个字典列表,如下所示:

matchings = [
    {'id': 'someid1', 'domain': 'somedomain1.com'},
    {'id': 'someid2', 'domain': 'somedomain2.com'},
    {'id': 'someid3', 'domain': 'somedomain3.com'}
]
Run Code Online (Sandbox Code Playgroud)

而且,我有一个变量:

the_id = 'someid3'
Run Code Online (Sandbox Code Playgroud)

检索项目域值的最有效方法是什么?

python dictionary loops list-comprehension

3
推荐指数
1
解决办法
787
查看次数

WCF未在IIS 6.0下运行

试图让我的WCF服务在IIS 6下运行.

我创建了.svcaspnet_isapi.dll映射根据:http://msdn.microsoft.com/en-us/library/ms752241.aspx

查看Server1.svc页面时,我得到的是404.

我已经使用简单的.aspx页面测试了该站点,以确保URL正常工作,但同样不再使用.svc扩展名.

我安装了.NET 3.5 SP1,我web.config正在引用3.5程序集,并且在查看.aspx页面时我没有收到错误,所以它可能会正确地选择那些程序集.

可能有什么不对?

configuration wcf iis-6 web-services

19
推荐指数
3
解决办法
3万
查看次数