正如在这个链接中所讨论的:如何在log4j中创建自己的Appender?
为了在log4j 1.x中创建自定义appender,我们必须扩展AppenderSkeleton类并实现其append方法.
类似地我们如何在log4j2中创建自定义appender,因为我们没有扩展AppenderSkelton类,所有其他appender扩展AppenderBase类.
我知道AsyncAppender在一个单独的线程中执行附加作业.他们为此目的使用ArrayBlockingQueue.
和
AsyncLogger使用LMAX disruptor库将日志记录事件从一个应用程序线程移动到另一个线程,并且它与AsyncAppender一起更快.
我的问题是为什么我们在log4j2中有AsyncAppender,如果它所做的工作是由AsyncLogger更有效地实现的.
如果我们将AsyncAppender与AsyncLogger一起使用怎么办?AsyncLogger和AsyncAppender之间是否还有其他差异?
Java中的对象的实例变量是存储在JVM的堆栈或方法区域中的吗?
另外,我们为多个线程设置了不同的实例变量吗?
如果它存储在方法区域中,实例变量与静态变量存储的不同之处是什么?
我试图将图像从fileupload控件保存到数据库中
public Byte[] bytes;
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
bytes = br.ReadBytes((Int32)fs.Length);
SqlDataSource2.Update();
protected void SqlDataSource2_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@project_file"].Value = bytes;
}
Run Code Online (Sandbox Code Playgroud)
我的数据库project_file字段设置为varbinary(MAX),
但这是一个错误
参数'@project_file'超出了sql_variant数据类型的大小限制.
请提出一些解决方案
我使用的是 websphere v7.0 和 websphere mq 6。在尝试通过 websphere 控制台连接到队列管理器时,我收到了 compcode '2' ('MQCC_FAILED') 原因 '2058' 错误。具有相同功能的队列管理器可在已定义服务器通道的 mq 服务器。
非常感谢任何帮助。
我创建了一个JDBC appender并绑定了ColumnConfig和DataSourceConnectionSource.
在尝试在DB中插入记录时(Logger.debug("Test")).我得到的是异常.
谢谢
[6/16/14 18:44:58:647 GMT-08:00] 00000024 SystemErr R ERROR StatusLogger An exception occurred processing Appender JDBCAppender org.apache.logging.log4j.core.appender.AppenderLoggingException: Failed to insert record for log event in JDBC manager: DSRA1300E: Feature is not implemented: PreparedStatement.setNString
at org.apache.logging.log4j.core.appender.db.jdbc.JDBCDatabaseManager.writeInternal(JDBCDatabaseManager.java:117)
at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:159)
at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:103)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406)
at org.apache.logging.log4j.core.Logger$PrivateConfig.logEvent(Logger.java:275)
at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:289)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:99)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:43)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:28)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:133)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.sql.SQLFeatureNotSupportedException: DSRA1300E: Feature is not implemented: PreparedStatement.setNString
at com.ibm.ws.rsadapter.AdapterUtil.notSupportedX(AdapterUtil.java:1306)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setNString(WSJdbcPreparedStatement.java:2362)
at org.apache.logging.log4j.core.appender.db.jdbc.JDBCDatabaseManager.writeInternal(JDBCDatabaseManager.java:104) …Run Code Online (Sandbox Code Playgroud) 我正在使用日历控件,但需要能够选择时间和日期.
有人可以推荐一个提供日期和时间功能的控件吗?
谢谢
可能重复:
ASP.NET DateTime Picker
asp.net中是否有默认控件名称DateTimePicker?我想要一个具有日期和时间选择功能的单一控件.请问我一个?谢谢
如何将存储在我的数据库字段中的二进制数据转换为Byte []数组?
简单地将二进制文件转换为byte []不起作用
context.Response.BinaryWrite((byte[])images);
Run Code Online (Sandbox Code Playgroud) 我在 log4j2 xml 中配置了 JDBC 附加程序
<JDBC name="databaseAppender" tableName="TL_FX_LOG">
<ConnectionFactory class="org.apache.jmeter.protocol.java.test.ConnectionFactory" method="getDatabaseConnection" />
<Column name="LOG_DATE" isEventTimestamp="true" />
<Column name="LOG_DESC" pattern="%message" />
<Column name="LOG_Batch" literal="someproperty" />
Run Code Online (Sandbox Code Playgroud)
我需要从 Java 代码设置文字(LOG_Batch)的值。
Logger.debug("hello");
Run Code Online (Sandbox Code Playgroud)
hello 将作为 %message 值传递。但是如果我有一个变量
String log_batch="test";
Run Code Online (Sandbox Code Playgroud)
如何将 log_batch 变量值传递给 JDBC 附加程序。
如何获得两个日期时间变量之间的总小时数?
date1=1/1/2011 12:00:00
date2=1/3/2011 13:00:00
datetime date1 ;
datetime date2;
int hours=(date1.date2).hours;
Run Code Online (Sandbox Code Playgroud)
输出为"1",但我想要两个日期之间的总小时差,即49小时
谢谢